方案一:继承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>