Android如何更改gridview突出显示颜色?

Posted

技术标签:

【中文标题】Android如何更改gridview突出显示颜色?【英文标题】:Android how to change gridview highlight color? 【发布时间】:2012-03-27 00:17:42 【问题描述】:

如何在 gridview 中改变 imageView 的高亮颜色。

我试过了,

 public View getView(int position, View convertView, ViewGroup parent) 

    ImageView imageView;
    if (convertView == null)   // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(width, height));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        imageView.setBackgroundResource(R.drawable.menu_beh);
     //   imageView.setPadding(8, 8, 8, 8);
     else 
        imageView = (ImageView) convertView;
    

    String s=(String)HiveApp.mgd[position].posters[2].image.url;
 //   imageView.setImageDrawable(getPicture(items[position]));
   HiveApp.id.download(s, imageView); 


  //     id.DisplayImage(s, imageView);

    return imageView;

【问题讨论】:

【参考方案1】:

我自己解决了,你应该把它添加到你的布局xml中

 android:listSelector="@drawable/panel_picture_frame_background"

不是这个

imageView.setBackgroundResource(R.color.gridview_highlight_selector);

谢谢

【讨论】:

也为我工作。上面的选项崩溃了。【参考方案2】:

将包含以下内容的imageview_highlight_selector.xml文件添加到drawable文件夹,然后调用imageView.setBackgroundResource(R.drawable.gridview_highlight_selector);

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true"
       android:drawable="@drawable/highlight_bg" /> <!-- pressed -->
 <item android:drawable="@drawable/normal_bg" /> <!-- default -->
</selector>

我建议你在一个 xml 文件中定义你的 gridview 项目,然后从你的 Java 代码中扩充那个 xml,这样会更整洁。

编辑:

如果只想使用颜色而不是drawable,可以在res文件夹下添加color子文件夹,在color文件夹下添加gridview_highlight_selector.xml以下内容,调用imageView.setBackgroundResource(R.color.gridview_highlight_selector);在您的代码中:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#ffff" />
    <item android:color="#ff3697de" />
</selector>

【讨论】:

感谢您的回答,但这会改变项目背景的状态,并且橙色高亮不会消失...

以上是关于Android如何更改gridview突出显示颜色?的主要内容,如果未能解决你的问题,请参考以下文章

更改或完全删除 Android 上 Google Maps v2 的 InfoWindow 的突出显示颜色

如何更改 Java Swing TextArea 中的突出显示颜色?此外,更改与突出显示位置对应的文本的开头

如何更改 Summernote 中的默认文本突出显示颜色?

如何更改标签栏图标的突出显示颜色? (iPhone/iPad)

如何更改 IPython(Jupyter) 中代码的突出显示颜色样式?

如何在滚动时突出显示/更改表格视图部分标题的背景颜色