以前在学习安卓的时候 那个时候是学习过九宫格的,后来由于工作对这个九宫格没有接触太多,渐渐的忽略了这个东西,随着接触的东西越来越多,感觉这个九宫格还是很广泛 的为此特地写了一个demo,其实九宫格就是一个gridview然后设置适配器即可,这里面需要注意的是九宫格的线下面看代码
项目地址 https://github.com/yuanchongzhang/jiugongge
<com.jiuxin.jiugongge.MyGridView android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:horizontalSpacing="0.0dip" android:listSelector="@null" android:numColumns="3" android:scrollbars="none" android:stretchMode="columnWidth" android:verticalSpacing="0.0dip" />
gridview= (MyGridView) findViewById(R.id.gridview); gridview.setAdapter(new MyGridAdapter(this));
public class MyGridAdapter extends BaseAdapter { private Context mContext; public String[] img_text = { "健康知识", "健康知识", "健康知识", "健康知识", "健康知识", "健康知识", "健康知识", "健康知识", "问卷调查", }; public int[] imgs = { R.mipmap.healthy, R.mipmap.healthy, R.mipmap.healthy, R.mipmap.healthy, R.mipmap.healthy, R.mipmap.healthy, R.mipmap.healthy, R.mipmap.healthy, R.mipmap.answer }; public MyGridAdapter(Context mContext) { super(); this.mContext = mContext; } @Override public int getCount() { // TODO Auto-generated method stub return img_text.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate( R.layout.grid_item, parent, false); } TextView tv = BaseViewHolder.get(convertView, R.id.tv_item); ImageView iv = BaseViewHolder.get(convertView, R.id.iv_item); iv.setBackgroundResource(imgs[position]); tv.setText(img_text[position]); return convertView; } }还是灰常简单的
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="0.0dip" android:background="@color/griditems_bg" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" android:background="@drawable/bg_gv" android:padding="12.0dip" > <ImageView android:id="@+id/iv_item" android:layout_width="58.0dip" android:layout_height="58.0dip" android:layout_centerHorizontal="true" android:contentDescription="@string/app_name" /> <TextView android:id="@+id/tv_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/iv_item" android:layout_centerHorizontal="true" android:layout_marginTop="5.0dip" android:maxLines="1" android:textColor="@color/commo_text_color" android:textSize="14.0sp" /> </RelativeLayout> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"><shape android:shape="rectangle"> <stroke android:width="1.0px" android:color="@color/line" /> <gradient android:angle="270.0" android:endColor="#ffe8ecef" android:startColor="#ffe8ecef" /> </shape></item> <item android:state_focused="true"><shape android:shape="rectangle"> <gradient android:angle="270.0" android:endColor="#ffe8ecef" android:startColor="#ffe8ecef" /> <stroke android:width="1.0px" android:color="@color/line" /> </shape></item> <item><shape android:shape="rectangle"> <gradient android:angle="270.0" android:endColor="#ffffffff" android:startColor="#ffffffff" /> <stroke android:width="1.0px" android:color="@color/line" /> </shape></item> </selector>