android_demo之生成颜色布局

前面学习了动态生成表格,不单单是要动态生成控件,也同时生成一个事件。

接下来用个小小栗子去了解这个知识点。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:gravity="center_vertical"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:textSize="20sp"
                android:text="请输入行:"
                />

            <EditText
                android:id="@+id/editText1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="请输入数字!"
                android:numeric="decimal" />

        </LinearLayout>

        <LinearLayout
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:gravity="center_vertical"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:textSize="20sp"
                android:text="请输入列:"
                />

            <EditText
                android:id="@+id/editText2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="请输入数字!"
                android:numeric="decimal">

                <requestFocus />
            </EditText>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/button1"
                android:text="一键自动生成表格"
                />

        </LinearLayout>

    </LinearLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/table1">

    </TableLayout>

</LinearLayout>
package com.example.dynamictable;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
    private final int MP = ViewGroup.LayoutParams.MATCH_PARENT;
    private EditText row;
    private EditText column;
    private Button bt1;
    private TableLayout tableLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取控件Button
        bt1=(Button) findViewById(R.id.button1);
        //获取文本输入框控件
        row=(EditText) findViewById(R.id.editText1);
        column=(EditText) findViewById(R.id.editText2);

        //给button按钮绑定单击事件
        bt1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //Color[] colorBlocks= new Color[4096];
                //int row_int=Integer.parseInt(row.getText().toString());
                //int col_int=Integer.parseInt(column.getText().toString());

                 //获取控件tableLayout
                tableLayout = (TableLayout)findViewById(R.id.table1);
                //清除表格所有行
                tableLayout.removeAllViews();
                //全部列自动填充空白处
                tableLayout.setStretchAllColumns(true);
                //生成X行,Y列的表格     

                int theLength = 64;

                for(int i=0;i<theLength;i++)
                {
                    TableRow tableRow=new TableRow(MainActivity.this);
                    //生成颜色
                    for(int j=0;j<theLength;j++)
                    {
                        int result = i*theLength +(j+1)-1;//0~4095
                        int red = result / 256 ;
                        int green = (result-red*256) / 16;
                        int blue = result-red*256 - green*16;

                        //tv用于显示
                        TextView tv=new TextView(MainActivity.this);
                        //Button bt=new Button(MainActivity.this);

                        tv.setText("-");
                        tv.setBackgroundColor( Color.rgb(red*16, green*16,  blue*16) );

                        //Color.rgb(red*16-1, green*16-1,  blue*16-1)
                        //tv.setBackgroundResource(35434);
                        tableRow.addView(tv);
                    }
                    //新建的TableRow添加到TableLayout

                    tableLayout.addView(tableRow, new TableLayout.LayoutParams(MP, WC,1));
                }

            }
        });

    }  

}

运行结果:

注意运行的时候会比较慢,当你一直看见那个页面不动,不要激动,请耐心等待,好事多磨。你懂的。

由于考虑到电脑的因素我们就不循环全部颜色出来,只取其中的一部分。看见上面的颜色表,只是一部分而已,

如果你想检测你的机器好不好,不妨试试255做出整个颜色表

相信那会你会想崩溃,因为你的电脑或是手机都好难hold 住。

时间: 2024-10-23 01:53:23

android_demo之生成颜色布局的相关文章

Android 生成颜色器

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation

JavaScript随机生成颜色的方法

JavaScript随机生成颜色的方法 这篇文章主要介绍了JavaScript随机生成颜色的方法的相关资料,非常不错,代码简单易懂,具有参考借鉴价值,需要的朋友可以参考下 废话不多说了直接给大家贴js代码了,具体代码如下所述: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <!DOCTYPE html> <html>

DOM节点渲染详解--盒子的生成到布局过程

CSS的可视化格式模型是一种处理文档并把它显示在可视化媒介中的一种算法.它是CSS的基本概念,可视化格式模型转化每个文档元素,生成0个或一个或多个符合CSS盒子模型规则的盒子.每个盒子的布局受如下几点影响: 1. 盒子的大小: 2. 盒子的类型: 3. 定位的方案: 4. 它的子代和兄弟: 5. 可视区域和位置: 6. 它包含的图片的已有大小: 7. 其他额外的信息: 特定的模型渲染每个盒子,这个模型与包含这个盒子的块相关.通常,一个盒子为他的后代元素建立一个包含块,除非这个盒子不受包含块的约束

Android_demo之生成二维码

今天我们来学习一个自动生成二维码 的写法.我们经常能见到各种二维码,比如公众号的二维码,网址的,加好友的,支付的二维码等等.其实每一个二维码只是利用图片的形式展示出来的,实际是一些字符串.而这个字符串可以通过我们识别二维码的工具下显示出来.所谓生成二维码说白了就是将字符串用图片形式展现出来..真正厉害的是识别的工具.当然,我目前只会生成这样的二维码图片,让我们一起来学习一下吧. 首先我们得先写个布局. activity_main.xml 1 <RelativeLayout xmlns:andro

Android-Activity程序动态的生成表格布局管理器

.java代码如下: package org.lxh.demo; import android.app.Activity; import android.os.Bundle; import android.view.ViewGroup; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; public class MyTableLayoutDemo e

生成随机颜色JS

平时自己练习时,经常会加点颜色以突显效果,我觉得很麻烦,而且自己能记住的颜色并不多,而且也不好选择,所以就自制了如下生成随机颜色的JS代码 <!DOCTYPE html> <html lang="en"><head> <meta charset="utf-8" /> <title>两栏三栏自适应布局</title> <style type="text/css">

Android 动态生成布局 (多层嵌套)

Android 除了可以加载xml文件,显示布局外,也可以代码生成布局,并通过setContentView(View view)方法显示布局.单独的一层布局,如一个主布局加一个控件(如Button\imageView等)动态生成代码比较简单,下面只给出示例代码: package com.example.android_dongtaishengcheng; import android.os.Bundle; import android.app.Activity; import android.c

js生成随机颜色

方法一: var getRandomColor = function(){ return '#' + (function(color){ return (color += '0123456789abcdef'[Math.floor(Math.random()*16)]) && (color.length == 6) ? color : arguments.callee(color); })(''); } 随机生成6个字符然后再串到一起,闭包调用自身与三元运算符让程序变得内敛. 方法二: v

生成一个指定颜色,指定大小的圆

为实现小程序的地图可视化做准备 #-*-coding:utf-8-*- import matplotlib.pyplot as plt import numpy as np from matplotlib.patches import Circle import matplotlib as mt /** *生成一个指定颜色,指定大小的圆 */ def drawCircle(color,size,name): fig = plt.figure(figsize=(size,size)) ax = f