有图有真相!下面推荐内容排版就是使用的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;
}
我这里的边框线为纯色的,你可以使用渐变色实现更加绚丽的效果,诸如此类:
好帖,大家要顶啊!