Android开发:自定义GridView的子项在被选中、获取焦点、按下时的背景
来源:互联网 发布:linux ctrl r 下一个 编辑:程序博客网 时间:2024/05/28 22:13
去年的一个项目中需要用到标题中所提到的功能,这是个电视上的相册类android应用,使用遥控器的方向键进行操作,当GridView的子项被选中的时候其背景需要改变,当未被选中的时候,恢复原样。
实现方案是这样的:在GridView的Adapter中,自定义getView方法,在其中加载自定义的布局文件,找到需要设置背景的控件,在我的项目中是imageView,如下:
public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater laly=LayoutInflater.from(MainActivity.this); if (convertView == null) { convertView = laly.inflate(R.layout.item, null); } ImageView imageView = (ImageView) convertView.findViewById(R.id.myimg); imageView.setImageResource(imgIds[position]); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imageView.setBackgroundResource(R.drawable.myselector);//关键点 TextView textView = (TextView) convertView.findViewById(R.id.myimgTxt); textView.setText("picture :"+position); return convertView; }
其中的R.drawable.myselector即为关键的部分,在其中设置被选中,按下等状态时的背景。
R.drawable.myselector是位于/res/drawable/目录下的myselector.xml,具体内容如下所示:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When the window does not have focus. --> <item android:drawable="@drawable/pic5" android:state_selected="true" android:state_window_focused="false" /> <item android:drawable="@drawable/pic6" android:state_selected="false" android:state_window_focused="false" /> <!-- When the window does have focus. --> <item android:drawable="@drawable/pic5" android:state_selected="true" android:state_pressed="true" /> <item android:drawable="@drawable/pic5" android:state_selected="true" android:state_focused="true" /> <item android:drawable="@drawable/pic5" android:state_selected="true" /> <item android:drawable="@drawable/pic6" android:state_selected="false" android:state_pressed="true" /> <item android:drawable="@drawable/pic6" /> </selector>
在上述所示的代码中更改相应的图片资源,即可实现对GridView子项背景的自定义。
- Android开发:自定义GridView的子项在被选中、获取焦点、按下时的背景
- android开发 gridview的item与子控件焦点问题
- Android TV 开发-listview(GridView)使用键盘获取焦点时,选中上次失去焦点时的item,而不是就近的item
- Android使listview(GridView) 获取焦点时,选中上次失去焦点时的item,而不是就近的item
- Android使listview(GridView) 获取焦点时,选中上次失去焦点时的item,而不是就近的item
- Android使listview(GridView) 获取焦点时,选中上次失去焦点时的item,而不是就近的item
- 在gridview中获取选中的CheckBox
- 去除在手机chrome 下 获取焦点的背景
- gridview选中效果的实现,选中的改变背景。同时只有一个能被选中
- android tv 开发的列表条目在获得焦点时的背景效果
- winform中GridView控件在选中一行后改变选中行的背景颜色
- 去除GridView选中时的黄色背景
- Android进阶之Listview/GridView的onItemClick()获取不到焦点
- 在GridView中获取当前选中行内某列的值
- Android 在机顶盒开发过程当中如何禁止listview的item项获得焦点,而让item的子控件获得焦点
- Android 在机顶盒开发过程当中如何禁止listview的item项获得焦点,而让item的子控件获得焦点
- Android gridview 自定义的,背景黑色块,黑块问题
- 访问GRIDVIEW选中行的子控件
- 突破flash player的睡眠模式
- eclipse GWT开发环境的离线布置方法
- hdu 1892 See you~
- 导出Excel表格文件 .xls
- jQuery 遇到的问题
- Android开发:自定义GridView的子项在被选中、获取焦点、按下时的背景
- 驱动程序的编译和连接
- ListView属性备忘
- JAVA多线程中的锁机制
- #pragma预处理命令
- 模板函数min/max与Visual C++中的 min/max宏冲突
- C#导出csv文件
- android 常用的数据库表以及操作说明
- Hibernate 外键映射文件配置