首先,用代码实现,调用OnDraw方法,实现重写
package shadow.widget;
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 myImageView extends ImageView {
private String namespace="http://xxx.xx.com";
private int color;
public myImageView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
color=Color.parseColor(attrs.getAttributeValue(namespace, "BorderColor"));
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
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);
}
这里要注意的是super.onDraw(canvas);在前,否则边框可能会被图片所覆盖。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:shadow="http://shadow.com"
android:background="@drawable/bg_newslist"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout android:id="@id/LinerLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<shadow.widget.defineImageView
android:id="@id/ImageviewBorder"
shadow:BorderColor="GRAY"
android:layout_width="100px"
android:layout_height="80px"
android:layout_alignParentRight="true"
android:src="@drawable/image_meinv"
android:layout_centerInParent="true"
android:layout_marginRight="5px"
></shadow.widget.defineImageView>
设置边框颜色 shadow:BorderColor="Red"
(二)用自定义样式方法实现
背景定义xml: Imgview_bg_border.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EEEEEE" />
<stroke android:width="5dp" android:color="#ffffff" />
<corners android:radius="0dp" />
<padding android:left="0dp" android:top="0dp"
android:right="0dp" android:bottom="0dp" />
</shape>
在Imageview定义页面上使用代码:
<ImageView android:id="@+id/imageview_border"
android:layout_height="80dp"
android:layout_width="100dp"
android:background="@drawable/Imgview_bg_border"
android:padding="3dp"
/>