方案一:继承ImageView,在onDraw 重写画图函数,在图片边延画条灰色的线
方案二:在灰色背景下,内缩2个像索,再内嵌个图片。
- package com.xmz.activity;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.graphics.Rect;
- import android.util.AttributeSet;
- import android.widget.ImageView;
- public class ImageViewBorder extends ImageView {
- private String namespace="http://xmz.com";
- private int color;
- public ImageViewBorder(Context context, AttributeSet attrs) {
- super(context, attrs);
- color=Color.parseColor(attrs.getAttributeValue(namespace, "BorderColor"));
- }
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- //画边框 暂时去除小边框
- Rect rec=canvas.getClipBounds();
- rec.bottom--;
- rec.right--;
- Paint paint=new Paint();
- paint.setColor(color);
- paint.setStyle(Paint.Style.STROKE);
- canvas.drawRect(rec, paint);
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xmz="http://xmz.com"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="方案一:"
- />
- <com.xmz.activity.ImageViewBorder
- android:layout_width="124px"
- android:layout_height="180px"
- android:background="@drawable/movie"
- xmz:BorderColor="GRAY"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="方案二:"
- />
- <LinearLayout
- android:layout_width="124px"
- android:layout_height="180px"
- android:background="@drawable/image_bg"
- android:padding="2px">
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/movie"
- />
- </LinearLayout>
- </LinearLayout>
工程的资源下载:http://download.csdn.net/source/3386837