android GridView设置边框教程!!

有图有真相!下面推荐内容排版就是使用的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;
	}


我这里的边框线为纯色的,你可以使用渐变色实现更加绚丽的效果,诸如此类:


好帖,大家要顶啊!

原文地址:https://www.cnblogs.com/xieyuan/p/3787315.html