Android, как изменить цвет подсветки gridview? - PullRequest
3 голосов
/ 09 марта 2012

как можно изменить цвет подсветки imageView внутри gridview.

Я пробовал это,

 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;
}

Ответы [ 2 ]

13 голосов
/ 12 марта 2012

Я разрешаю это сам, вы должны добавить это в свой макет xml

 android:listSelector="@drawable/panel_picture_frame_background"

а не это

imageView.setBackgroundResource(R.color.gridview_highlight_selector);

спасибо

3 голосов
/ 09 марта 2012

Добавьте файл 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>

Я бы посоветовал вам определить свой элемент gridview в файле XML, а затем накачать этот XML изнутри вашего Java-кода, что будет лучше.

РЕДАКТИРОВАТЬ:

Если вы хотите использовать только цвет, а не рисунок, вы можете добавить подпапку color в папку res и добавить следующее содержимое как gridview_highlight_selector.xml в папку color,и наберите 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>
...