第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

android開發(fā)之自定義圓形ImagView

標(biāo)簽:
Android

在日常使用中我们经常会使用到圆形的图片,但是android系统中并没有默认的圆形控件,所以我们需要自己来写一个自定义的ImagView来显示一张圆形的图片,下面先看效果

5bb6e054000189ba04050721.jpg

详细的方法是我们自定义一个类,继承ImagView,然后重写一些方法,下面是代码

/**
 * 圆形的ImagView
 * 
 * @author Administrator
 * 
 */
public class RoundImageView extends ImageView {
   public RoundImageView(Context context) {
      super(context);
      // TODO Auto-generated constructor stub
   }

   public RoundImageView(Context context, AttributeSet attrs) {
      super(context, attrs);
   }

   public RoundImageView(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
   }

   @Override
   protected void onDraw(Canvas canvas) {

      Drawable drawable = getDrawable();

      if (drawable == null) {
         return;
      }

      if (getWidth() == 0 || getHeight() == 0) {
         return;
      }

      Bitmap b = ((BitmapDrawable) drawable).getBitmap();

      if (null == b) {
         return;
      }

      Bitmap bitmap = b.copy(Config.ARGB_8888, true);

      int w = getWidth(), h = getHeight();

      Bitmap roundBitmap = getCroppedBitmap(bitmap, w);
      canvas.drawBitmap(roundBitmap, 0, 0, null);

   }

   public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {
      Bitmap sbmp;
      if (bmp.getWidth() != radius || bmp.getHeight() != radius)
         sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false);
      else
         sbmp = bmp;
      Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), sbmp.getHeight(),
            Config.ARGB_8888);
      Canvas canvas = new Canvas(output);

      final int color = 0xffa19774;
      final Paint paint = new Paint();
      final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight());

      paint.setAntiAlias(true);
      paint.setFilterBitmap(true);
      paint.setDither(true);
      canvas.drawARGB(0, 0, 0, 0);
      //设置笔的颜色
      paint.setColor(Color.parseColor("#BAB399"));
      //画圆
      canvas.drawCircle(sbmp.getWidth() / 2 + 0.5f,
            sbmp.getHeight() / 2 + 0.5f, sbmp.getWidth() / 2 + 0.5f, paint);
      paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
      canvas.drawBitmap(sbmp, rect, rect, paint);

      return output;
   }
}

然后在布局中引用这个自定义的控件, 就可以了

<里面的是你的包名加自定义的类名,如果按住Ctrl+鼠标左键能进入类的话,就说明引用成功了。

<comiptv.example.vincent.test.RoundImageView
    android:layout_centerInParent="true"
    android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@mipmap/a8"
    android:layout_width="300dp"
    android:layout_height="300dp"
    />

这样就可以了

原文链接:http://www.apkbus.com/blog-843025-61687.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消