新学习知识,用到率30%
子布局设置:
主布局设置:
activity设置:
package com.example.administrator.test_1216;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//声明主布局
ImageView img;
LinearLayout line;
//声明子布局
ImageView img1;
TextView num;
//图片数组
int[] imgid=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_view);
// 绑定祝布局
img= (ImageView) findViewById(R.id.img);
line= (LinearLayout) findViewById(R.id.line);
//初始化数组
imgid = new int[]{R.mipmap.baiyang, R.mipmap.chunv, R.mipmap.jinniu, R.mipmap.mojie, R.mipmap.shizi, R.mipmap.baiyang, R.mipmap.chunv, R.mipmap.jinniu, R.mipmap.mojie, R.mipmap.shizi};
//使用for循环新建视图
for (int i = 0; i <imgid.length ; i++) {
//加载子布局
View v= LayoutInflater.from(MainActivity.this).inflate(R.layout.item1,null);
//绑定子布局
img1= (ImageView) v.findViewById(R.id.img1);
num= (TextView) v.findViewById(R.id.num);
//为子布局控件添加id,用来点击使用
img1.setId(i);
//设置背景资源
img1.setImageResource(imgid[i]);
//给textView设置内容
num.setText(i+"");
//给textView设置tag,点击时使用
num.setTag(i);
//设置监听
img1.setOnClickListener(this);
//将子布局添加到主布局中
line.addView(v);
}
}
@Override
public void onClick(View v) {
//点击的控件必须是ImageView类型 并且 点击的ImageView控件要是子布局里的
if((v instanceof ImageView)&&(v!=img)){
//给主布局里的ImageView控件设置背景资源,保证和子布局里点击选中的图片一致
img.setImageResource(imgid[v.getId()]);
//遍历LinearLayout里面子布局,对文字进行设置
for (int i = 0; i <line.getChildCount() ; i++) {
num= (TextView) line.findViewWithTag(i);
//设置选中图片对应的下面文字序号的编号
if(line.getChildAt(i).findViewById(i).getId()==v.getId()){
num.setTextColor(Color.BLUE);
}else {
//未选中图片对应的颜色
num.setTextColor(Color.BLACK);
}
}
}
}
}
效果图: