Android-LayerDrawable实现图片选中效果
来源:互联网 发布:一级建造师 网络教育 编辑:程序博客网 时间:2024/06/07 02:50
1.选中图片与未选中的对比
未选中时
选中时:
其实就是选中时用如下所示的一张半透明图片覆盖,再次点击还原。判断点击以后怎么变化可根据ImageView.getDrawable()判断是BitmapDrawable的实例还是LayerDrawable的实例即可。
(img_selector.png)
2.重要代码如下
layout.xml
<!--第一行图片--> <LinearLayout android:layout_weight="4" android:layout_width="match_parent" android:padding="10dp" android:layout_height="0dp" android:orientation="horizontal" > <ImageView android:id="@+id/img_select01" android:layout_weight="3" android:layout_width="0dp" android:background="#ffffff" android:src="@drawable/img_selector" android:layout_height="match_parent" /> <ImageView android:id="@+id/img_select02" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="3" android:background="#ffffff" android:layout_width="0dp" android:src="@drawable/img_selector" android:layout_height="match_parent" /> <ImageView android:id="@+id/img_select03" android:layout_weight="3" android:background="#ffffff" android:layout_width="0dp" android:src="@drawable/img_selector" android:layout_height="match_parent" /> </LinearLayout> <!--第二行图片--> <LinearLayout android:layout_weight="4" android:layout_width="match_parent" android:padding="10dp" android:layout_height="0dp" android:orientation="horizontal" > <ImageView android:id="@+id/img_select04" android:layout_weight="3" android:background="#ffffff" android:layout_width="0dp" android:src="@drawable/img_selector" android:layout_height="match_parent" /> <ImageView android:id="@+id/img_select05" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="3" android:background="#ffffff" android:layout_width="0dp" android:src="@drawable/img_selector" android:layout_height="match_parent" /> <ImageView android:id="@+id/img_select06" android:layout_weight="3" android:background="#ffffff" android:layout_width="0dp" android:src="@drawable/img_selector" android:layout_height="match_parent" /> </LinearLayout> <!--第三行图片--> <LinearLayout android:layout_weight="4" android:layout_width="match_parent" android:padding="10dp" android:layout_height="0dp" android:orientation="horizontal" > <ImageView android:id="@+id/img_select07" android:layout_weight="3" android:layout_width="0dp" android:background="#ffffff" android:src="@drawable/img_selector" android:layout_height="match_parent" /> <ImageView android:id="@+id/img_select08" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="3" android:layout_width="0dp" android:background="#ffffff" android:src="@drawable/img_selector" android:layout_height="match_parent" /> <ImageView android:id="@+id/img_select09" android:layout_weight="3" android:background="#ffffff" android:layout_width="0dp" android:src="@drawable/img_selector" android:layout_height="match_parent" /> </LinearLayout>
Activity中的核心代码:
声明图片资源
int []drawables={R.drawable.img001,R.drawable.img002,R.drawable.img003,R.drawable.img004,R.drawable.img005, R.drawable.img006,R.drawable.img007,R.drawable.img008,R.drawable.img008};ImageView imageViews[]=new ImageView[9];int []imageViewIds={R.id.img_select01,R.id.img_select02,R.id.img_select03,R.id.img_select04,R.id.img_select05,R.id.img_select06,R.id.img_select07,R.id.img_select08,R.id.img_select09};
初始化
for (int i=0;i<9;i++){ imageViews[i]=(ImageView)findViewById(imageViewIds[i]); imageViews[i].setImageResource(drawables[i]); imageViews[i].setOnClickListener(this); }
点击事件实例,比如点击了第一张图片,id为img_select01:
@Override public void onClick(View v) { switch (v.getId()){ case R.id.img_select01: changeImageView(0); break; } }
LayDrawable实现图片切换
private void changeImageView(int index) { if (imageViews[index].getDrawable() instanceof BitmapDrawable) { Resources res = this.getResources(); Drawable[] layers = new Drawable[2]; layers[0] = res.getDrawable(drawables[index]); layers[1] = res.getDrawable(R.drawable.img_selector); LayerDrawable layerDrawable = new LayerDrawable(layers); imageViews[index].setImageDrawable(layerDrawable); } else if (imageViews[index].getDrawable() instanceof LayerDrawable) { Resources res = this.getResources(); Drawable drawable = res.getDrawable(drawables[index]); imageViews[index].setImageDrawable(drawable); } }
阅读全文
1 0
- Android-LayerDrawable实现图片选中效果
- Android实现眼睛一闪一闪的效果,使用layerdrawable,类似GIF图片效果
- 用LayerDrawable实现两个图片的叠加效果
- css实现图片选中效果
- Android利用LayerDrawable实现各大App应用市场上选项卡切换效果
- CSS实现图片选中加边框效果
- android LayerDrawable
- Android LayerDrawable
- Android LayerDrawable
- android LayerDrawable 图层的实现
- Android gallery实现选中放大的效果
- Android gallery实现选中放大的效果
- Android gallery实现选中放大的效果
- Android Gallery实现选中放大的效果
- [Android] Gallery选中变大效果的实现
- Android View加载圆形图片且同时绘制圆形图片的外部边缘边线及边框:LayerDrawable实现
- 图片选中效果 css
- css实现图片选中效果,选中后在图片上有内框和文字介绍
- 使用迭代器删除集合的元素抛出异常
- L2-024. 部落
- MySQL游标修改记录——解决最后一行重复的问题
- ExtJS 4.2 清除grid选中项
- MySQL性能优化
- Android-LayerDrawable实现图片选中效果
- JAVA中的length属性与length()方法
- 关于文件上传跨域及接收
- HDU6183 cdq分治+线段树
- Codeforces186C
- 闲来蛋疼写个qq侧滑删除
- Android中使用putExtra()传递对象实例
- bzoj 1003 [ZJOI2006]物流运输(最短路spfa+dp)
- 排序算法--冒泡排序