有图有真相!下面推荐内容排版就是使用的GridView,看到边框了没??呵呵,接着上核心代码!
test.xml 布局文件,这个布局为GridView的每个项的布局。
<?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="wrap_content" android:orientation="vertical" > <LinearLayout android:id="@+id/recommend_item_content_linear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingTop="6dp" android:paddingBottom="5dp" > <ImageView android:id="@+id/recommend_item_icon" android:layout_width="50dp" android:layout_height="50dp" android:layout_marginLeft="2dp" android:src="@drawable/icon" android:contentDescription="@null" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_vertical" android:layout_marginLeft="3dp" > <TextView android:id="@+id/recommend_item_appname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:textSize="@dimen/text_size" android:text="测试文字" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/recommend_item_intro" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/dimgray" android:textSize="@dimen/small_small_text_size" android:text="体验" /> <TextView android:id="@+id/recommend_item_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="2dp" android:textColor="@color/yellow_red" android:textSize="@dimen/little_title_size" android:text="+4万5" /> </LinearLayout> </LinearLayout> </LinearLayout> <View android:id="@+id/recommend_item_bottomline" android:layout_width="fill_parent" android:layout_height="1px" android:layout_below="@+id/recommend_item_content_linear" android:background="@drawable/custom_tab_indicator_divider" android:contentDescription="@null" /> <View android:id="@+id/recommend_item_rightline" android:layout_width="1px" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_alignBottom="@+id/recommend_item_bottomline" android:background="@drawable/custom_tab_indicator_divider" android:contentDescription="@null" /> </RelativeLayout>
GridView adapter (适配器)核心代码
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; View row=convertView; if(convertView == null) { row=inflater.inflate(R.layout.recommend_item_layout, null); holder = new ViewHolder(); holder.iconImageView=(ImageView)row.findViewById(R.id.recommend_item_icon); holder.appNameTextView=(TextView)row.findViewById(R.id.recommend_item_appname); holder.introTextView=(TextView)row.findViewById(R.id.recommend_item_intro); holder.totalMoneyTextView=(TextView)row.findViewById(R.id.recommend_item_money); holder.rightLineView=(View)row.findViewById(R.id.recommend_item_rightline); row.setTag(holder); } else { holder=(ViewHolder)row.getTag(); } String iconUrl=arrayList.get(position).getIconUrl(); String appName=arrayList.get(position).getAppName(); String intro=arrayList.get(position).getIntro(); String totalMoney=arrayList.get(position).getTotalMoney(); imageLoader.displayImage(iconUrl, holder.iconImageView); holder.appNameTextView.setText(appName); holder.introTextView.setText(intro); if(totalMoney!=null) holder.totalMoneyTextView.setText(totalMoney); else holder.totalMoneyTextView.setText(""); //单数就隐藏右边线,索引从0开始(双数开始) if(position%2!=0) { holder.rightLineView.setVisibility(View.GONE); } return row; } class ViewHolder { ImageView iconImageView; TextView appNameTextView; TextView introTextView; TextView totalMoneyTextView; View rightLineView; }
我这里的边框线为纯色的,你可以使用渐变色实现更加绚丽的效果,诸如此类:
好帖,大家要顶啊!