需要重写ImageView
1 | //设置颜色 |
2 | public
void setColour(int
color){ |
3 | co = color;
|
4 | }
|
5 | //设置边框宽度
|
6 | public
void setBorderWidth(int
width){ |
7 | |
8 | borderwidth = width;
|
9 | } |
具体实现:
01 | package
xiaosi.imageborder; |
02 | |
03 | import
android.app.Activity; |
04 | import
android.graphics.Color; |
05 | import
android.os.Bundle; |
06 | |
07 | public
class ImageBorderActivity extends
Activity { |
08 | /** Called when the activity is first created. */ |
09 | private
myImageView image = null;
|
10 | private
myImageView image1 = null;
|
11 | @Override |
12 | public
void onCreate(Bundle savedInstanceState) {
|
13 | super.onCreate(savedInstanceState);
|
14 | setContentView(R.layout.main);
|
15 | |
16 | image = (myImageView)findViewById(R.id.iamge);
|
17 | image.setColour(Color.YELLOW);
|
18 | image.setBorderWidth(10);
|
19 | image1 = (myImageView)findViewById(R.id.iamge1);
|
20 | image1.setColour(Color.GREEN);
|
21 | image1.setBorderWidth(5);
|
22 | }
|
23 | } |
main.xml
01 | <LinearLayout |
02 | xmlns:android="http://schemas.android.com/apk/res/android" |
03 | android:background="@drawable/playerbackground" |
04 | android:layout_width="fill_parent" |
05 | android:layout_height="fill_parent">
|
06 | <xiaosi.imageborder.myImageView |
07 | android:id="@+id/iamge" |
08 | android:layout_width="200px" |
09 | android:layout_height="230px" |
10 | android:layout_alignParentRight="true" |
11 | android:src="@drawable/v" |
12 | android:layout_centerInParent="true" |
13 | android:layout_marginRight="3px" |
14 | />
|
15 | <xiaosi.imageborder.myImageView |
16 | android:id="@+id/iamge1" |
17 | android:layout_width="200px" |
18 | android:layout_height="230px" |
19 | android:layout_alignParentRight="true" |
20 | android:src="@drawable/v" |
21 | android:layout_centerInParent="true" |
22 | android:layout_marginRight="3px" |
23 | />
|
24 | </LinearLayout> |
01 | package
xiaosi.imageborder; |
02 | |
03 | import
android.content.Context; |
04 | import
android.graphics.Canvas; |
05 | import
android.graphics.Paint; |
06 | import
android.graphics.Rect; |
07 | import
android.util.AttributeSet; |
08 | import
android.widget.ImageView; |
09 | |
10 | public
class myImageView extends
ImageView { |
11 | |
12 | private
int co; |
13 | private
int borderwidth;
|
14 | public
myImageView(Context context) { |
15 | super(context);
|
16 | }
|
17 | public
myImageView(Context context, AttributeSet attrs,
|
18 | int
defStyle) { |
19 | super(context, attrs, defStyle);
|
20 | }
|
21 | |
22 | public
myImageView(Context context, AttributeSet attrs) {
|
23 | super(context, attrs);
|
24 | }
|
25 | //设置颜色
|
26 | public
void setColour(int
color){ |
27 | co = color;
|
28 | }
|
29 | //设置边框宽度
|
30 | public
void setBorderWidth(int
width){ |
31 | |
32 | borderwidth = width;
|
33 | }
|
34 | @Override |
35 | protected
void onDraw(Canvas canvas) {
|
36 | super.onDraw(canvas);
|
37 | // 画边框
|
38 | Rect rec = canvas.getClipBounds();
|
39 | rec.bottom--;
|
40 | rec.right--;
|
41 | Paint paint =
new Paint();
|
42 | //设置边框颜色
|
43 | paint.setColor(co);
|
44 | paint.setStyle(Paint.Style.STROKE);
|
45 | //设置边框宽度
|
46 | paint.setStrokeWidth(borderwidth);
|
47 | canvas.drawRect(rec, paint);
|
48 | }
|
49 | } |
本文介绍了一种在Android中自定义ImageView的方法,通过重写ImageView实现了动态设置图片视图的颜色和边框宽度的功能。示例代码展示了如何创建自定义的myImageView类并应用到实际项目中。
416

被折叠的 条评论
为什么被折叠?



