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