I want to show a different border for each gridview element. how can i set the border for each element dynamically.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/grid_item_image" android:layout_width="30px" android:layout_height="30px" android:src="@drawable/shape" > </ImageView> </LinearLayout>
Activity_main layout file:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <GridView android:id="@+id/gridView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:numColumns="15" android:verticalSpacing="1dp" android:horizontalSpacing="1dp" android:background="#f3f3f3" > </GridView> </RelativeLayout>
Main class:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) findViewById(R.id.gridView1); gridView.setAdapter(new ImageAdapter(this)); gridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText( getApplicationContext(), String.valueOf(position), Toast.LENGTH_SHORT).show(); ImageView imageView = (ImageView) v.findViewById(R.id.grid_item_image); imageView.setBackgroundColor(Color.BLUE); } });
Adapter Class:
public class ImageAdapter extends BaseAdapter { private Context context; public ImageAdapter(Context context) { this.context = context; } public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View gridView; if (convertView == null) { gridView = new View(context); gridView = inflater.inflate(R.layout.mobile, null); } else { gridView = (View) convertView; } return gridView; } @Override public int getCount() { return 300; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; }
}
EDIT
I added a form file to my design file
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@null" /> <stroke android:width="1dp" android:color="#000000" /> <padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" /> </shape>
source share