Android常用控件之GridView的蒙板用处和写法

内容

GridView常用语显示照片墙,例如上传图片时当选中一个图片时,,会出现一些特殊效果,此时要用到checkBox和蒙板。 布局文件,必须将GridView放在RelativeLayout或FrameLayout,此处用的是最常用的RelativeLayout

==”match_parent”android:orientation=”vertical”><GridView==>

GridView的单元项布局grid_item,其中我的蒙板的写法是用一个ImageView设置背景覆盖其他控件,背景默认不显示

==”match_parent”android:layout_margin=”5dp”><CheckBox=”wrap_content”android:layout_alignParentRight=”true”/><ImageView==”true”android:src=”@mipmap/pk”/><TextView===”pingguo”/><ImageView===”invisible”/></RelativeLayout>

接着建立一个存放单元信息的类Fruit(),其实并不是水果,此处请无视

{private String name;private int img;public Fruit(String name, int img) {this.name = name;this.img = img;}public String getName() {return name;}(String name) {this.name = name;}() {return img;}(int img) {this.img = img;}}

接着建立一个自定义适配器

{private List<Fruit> mFruits;private LayoutInflater mInflater;[] mCheckBoxManager;public FruitGridAdapter(List<Fruit> mFruits, LayoutInflater mInflater) {this.mFruits = mFruits;this.mInflater = mInflater;mCheckBoxManager = new boolean[mFruits.size()];}() {return mFruits.size();}@Overridepublic Object getItem(int position) {return position;}(int position) {return position;}position, View convertView, ViewGroup parent) {final ViewHolder viewHolder;if(convertView==null){viewHolder = new ViewHolder();convertView = mInflater.inflate(R.layout.grid_item,null);viewHolder.imageView = (ImageView) convertView.findViewById(R.id.item_imageview);viewHolder.textView = (TextView) convertView.findViewById(R.id.item_textview);viewHolder.checkBox = (CheckBox)convertView.findViewById(R.id.item_checkbox);viewHolder.tintImageView = (ImageView)convertView.findViewById(R.id.item_image_tint);convertView.setTag(viewHolder);}else{viewHolder = (ViewHolder) convertView.getTag();}Fruit fruit = mFruits.get(position);viewHolder.imageView.setImageResource(fruit.getImg());viewHolder.textView.setText(fruit.getName());viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {(CompoundButton buttonView, boolean isChecked) {mCheckBoxManager[position] = isChecked;notifyDataSetChanged();//刷新界面信息}});viewHolder.checkBox.setChecked(mCheckBoxManager[position]);//如果一个图片对应的checkBox被选中,则让该图的蒙板可见,否则设置为不可见。if(mCheckBoxManager[position]){viewHolder.tintImageView.setVisibility(View.VISIBLE);}else{viewHolder.tintImageView.setVisibility(View.INVISIBLE);}return convertView;}class ViewHolder{ImageView imageView;TextView textView;CheckBox checkBox;ImageView tintImageView;}}

主活动

{private List<Fruit> mFruits;private LayoutInflater mInflater;private GridView gridView;private FruitGridAdapter mAdapter;(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gridView = (GridView) findViewById(R.id.grid_view);mInflater = this.getLayoutInflater();mFruits = new ArrayList<>();Fruit apple = new Fruit(“apple”, R.mipmap.a_logo1);Fruit pear = new Fruit(“pear”, R.mipmap.image);Fruit pineapple = new Fruit(“pineapple”, R.mipmap.pk);Fruit grape = new Fruit(“grape”, R.mipmap.ic_launcher);for (int i = 0; i < 20; i++) {mFruits.add(apple);mFruits.add(pear);mFruits.add(pineapple);mFruits.add(grape);}mAdapter = new FruitGridAdapter(mFruits,mInflater);gridView.setAdapter(mAdapter);}}

结果演示:

而它的种子,就是它生命的延续,继续承受风,

Android常用控件之GridView的蒙板用处和写法

相关文章:

你感兴趣的文章:

标签云: