当前位置: 移动技术网 > IT编程>移动开发>Android > Android 实现切圆图作为头像使用实例

Android 实现切圆图作为头像使用实例

2019年07月24日  | 移动技术网IT编程  | 我要评论

新妹魔王的契约者小说,骡鹿,云南苏铁

android 切圆图

效果图如下:

myview 类

public class myview extends view {

  bitmap bmp;

  paint paint = new paint();


  public myview(context context) {
    super(context);
  }

  public myview(context context, attributeset attrs) {
    super(context, attrs);
    bmp = bitmapfactory.decoderesource(getresources(), r.mipmap.c);
    src = new rectf(bmp.getwidth() / 2 - 50, bmp.getheight() / 2 - 50, bmp.getwidth() / 2 + 50, bmp.getheight() / 2 + 50);
    dst = new rect(200, 200, 400, 400);

    paint.setantialias(true);
    paint.setdither(true);
    shader shaer = new bitmapshader(bmp, shader.tilemode.mirror, shader.tilemode.repeat);
    paint.setshader(shaer);
  }


  private rectf src = null;
  private rect dst = null;

  @override
  protected void ondraw(canvas canvas) {
    super.ondraw(canvas);
    //绘制bitmap

    matrix m = new matrix();

    //每次set都会重置矩形
    m.setrotate(90, bmp.getwidth() / 2, bmp.getheight() / 2);

    m.posttranslate(100, 100);

    m.prescale(0.5f, 0.5f, bmp.getwidth() / 2, bmp.getheight() / 2);

    //错切
    m.postskew(0.3f, 0.3f);

    // canvas.drawbitmap(bmp, m, null);

    // canvas.drawbitmap(bmp, src, dst, null);

    //拿view的高宽
    canvas.drawarc(src, 100, 270, true, paint);

  }
}

mainactivity 类

public class mainactivity extends appcompatactivity {

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
  }
}

xml

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_main"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  tools:context="com.example.administrator.lesson12_drawbitmap.mainactivity">


  <com.example.administrator.lesson12_drawbitmap.myview
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />


</linearlayout>

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网