歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發教程之自定義ImageView

Android開發教程之自定義ImageView

日期:2017/3/1 10:28:01   编辑:Linux編程

按照用HTML結合CSS的話,有點審美的,就可以制作漂亮的相框了。

但我突然發現Android的ImageView的屬性太不給力了,別說漂亮的相框,連加個邊框都難。

還好,android具有靈活多變的編碼風格,可以自定義ImageView。為了簡潔,下面的例子只是在ImageView上加了個邊框而已,望啟到拋磚引玉的效果。

首先,重寫ImageView。

  1. package org.xxx.picUpload.util;
  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.Color;
  5. import android.graphics.Paint;
  6. import android.graphics.Rect;
  7. import android.util.AttributeSet;
  8. import android.widget.ImageView;
  9. public class MyImageView extends ImageView {
  10. public MyImageView(Context context) {
  11. super(context);
  12. // TODO Auto-generated constructor stub
  13. }
  14. public MyImageView(Context context, AttributeSet attrs,
  15. int defStyle) {
  16. super(context, attrs, defStyle);
  17. // TODO Auto-generated constructor stub
  18. }
  19. public MyImageView(Context context, AttributeSet attrs) {
  20. super(context, attrs);
  21. // TODO Auto-generated constructor stub
  22. }
  23. @Override
  24. protected void onDraw(Canvas canvas) { //這裡就是重寫的方法了,想畫什麼形狀自己動手
  25. // TODO Auto-generated method stub
  26. super.onDraw(canvas);
  27. // 畫邊框
  28. Rect rec = canvas.getClipBounds();
  29. rec.bottom--;
  30. rec.right--;
  31. Paint paint = new Paint();
  32. paint.setColor(Color.GRAY); //顏色
  33. paint.setStyle(Paint.Style.STROKE);
  34. paint.setStrokeWidth(5);
  35. canvas.drawRect(rec, paint);
  36. }
  37. }

然後 在xml文件中直接引用。

  1. <org.xxx.picUpload.util.MyImageView
  2. android:id="@+id/imageView"
  3. android:layout_width="400px"
  4. android:layout_height="200px"/>

有圖有真相(圖片預覽):

Copyright © Linux教程網 All Rights Reserved