фон на предмет клик слушатель андроид

1

У меня есть Gridview где у меня много изображений, которые я получаю от url. Я добавил всех их к Arraylist и поставил Arraylist в Gridview. я использовал

 grid.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
                                           //my code here

                                     } 

поэтому, теперь, когда я нажимаю элементы GridView, я получаю границу вокруг каждого элемента сетки. могу ли я изменить цвет границы?

Теги:

2 ответа

1
Лучший ответ

Да, ты можешь. В макете элементов сетки вы можете установить фоновый рисунок в качестве селектора. http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList Вы можете установить каждое состояние элемента (нажатое, сфокусированное, по умолчанию и т.д.), чтобы соответствовать любому цвету (или растягиваемому) вы хотите. Для вас было бы проще сделать границу как пользовательскую. Либо Shape, либо 9-патч.

  • 0
    если я не хочу границу?
  • 0
    Вы можете сделать свой нарисованный вид любым, каким хотите. С рамкой, без рамки, сплошной цвет, прозрачный, градиент, растровое изображение, все что угодно. Селекторы в основном заменяют ресурс тем, на что вы указываете состояние. И все это сделано в XML.
Показать ещё 1 комментарий
3

посмотрите на этот пример

Рез/рисуем /border.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke android:width="2dp" android:color="@color/green"/>
    <solid android:color="@android:color/transparent"/>

Рез/рисуем /grid_item_selector.xml

<?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/border" />
<item android:drawable="@android:color/transparent"/> 
</selector>

теперь использование в gridview - это свойство android:listSelector="@drawable/grid_item_selector"

в main.xml

        <GridView android:id="@+id/gridview"
                        android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                        android:numColumns="auto_fit"
                     android:columnWidth="90dp"
                        android:stretchMode="columnWidth"
                         android:gravity="center" 
                    android:horizontalSpacing="-1px"
                        android:verticalSpacing="-1px"
                    android:drawSelectorOnTop="true"
                    android:listSelector="@drawable/grid_item_selector"/>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню