半夜了,直接上代码,注释都在代码里面,其实吧,这个很简单。。。。。

1.MainActivity

package com.example.diaplaycolumnslinearlayout;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParams;import android.widget.TextView;/** * LinearLayout实现多行多列显示 * @author Administrator * */public class MainActivity extends Activity {private LinearLayout mColumnsLinear;private int column = 4;private LayoutInflater inflater;private int index = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化组件mColumnsLinear = (LinearLayout) findViewById(R.id.columns_linear);//获取LayoutInflater对象inflater = LayoutInflater.from(this);//生成多行多列的线性布局,displayColumns(13);}/** * 生成多行多列的线性布局 * @param displayNumber 需要生成的个数,这里是需要生成的TextView的总个数 */private void displayColumns(int displayNumber) {//判断if (displayNumber <= 0) {return;}//判断是否被每行显示的列数整除boolean boo = false;//获取列数int rows = displayNumber / column;//判断,得到是否被每行显示的列数整除if (displayNumber % column == 0) {boo = true;} else {boo = false;}if (boo) {//如果能够被整除for (int i = 0; i < rows; i++) {createLinear(column);}return;}else{//如果不能够被整除for (int i = 0; i < rows; i++) {createLinear(column);}//用%,得到最后剩下的,不足一行的rows = displayNumber % column;//创建布局一行的布局createLinear(rows);}}/** * 创建每一行显示的线性布局  * @param i 一行显示的textview的个数 */private void createLinear(int i) {//创建线性布局LinearLayout layout = new LinearLayout(this);//设置LayoutParamsLinearLayout.LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);//设置为水平布局layout.setOrientation(LinearLayout.HORIZONTAL);//为线性布局这只LayoutParamslayout.setLayoutParams(lp);//循环添加for (int j = 0; j < i; j++) {//获取需要添加的布局文件View view = inflater.inflate(R.layout.item_column, null, false);//获取组件TextView tv = (TextView) view.findViewById(R.id.text);//设值tv.setText(++index + "");//绑定点击事件tv.setOnClickListener(clickListener);//添加到创建的线性布局中layout.addView(view);}//添加到显示的父线性布局中mColumnsLinear.addView(layout);}/** * 点击事件 */private OnClickListener clickListener = new OnClickListener() {@Overridepublic void onClick(View v) {System.out.println(((TextView)v).getText());}};}

2.activity_main.xml主布局文件

    

3.item_column.xml布局文件

<?xml version="1.0" encoding="utf-8"?>        
代码上传完成,这个只是一个简单的例子

想实现跟难一点的,但是没有思绪。。。。

希望如果有更好的实现方法,希望留言。。。。谢谢

更多相关文章

  1. Android通知栏图标显示网络图片
  2. android camera根据屏幕图像大小设置显示
  3. android之线性布局LinearLayout以及weight权重使用
  4. android 打开app先显示欢迎界面后自动跳到主界面
  5. Android(安卓)GridView 例子
  6. 可循环显示图像的Android(安卓)Gallery组件
  7. android actionBar右上角 menu 显示三个点
  8. 可循环显示图像的Android(安卓)Gallery组件
  9. android 用代码编写linearlayout布局

随机推荐

  1. Android(安卓)startActivityForResult的
  2. android 4.4以下loadIocn nullpointerExc
  3. 判断Android设备是否连接网络
  4. android邮箱开发可以参考的相关开源资料
  5. Linux/Ubuntu下android设备添加adb驱动
  6. android 透明对话框
  7. android 常见分辨率(mdpi、hdpi 、xhdpi、
  8. Android系统体系结构概要
  9. Android(安卓)Handle消息机制:秒懂Looper
  10. 悬浮顶层控件不受ScrollView影响