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

 更新时间:2016年12月25日 10:48:47   投稿:lqh  
这篇文章主要介绍了Android 实现切圆图作为头像使用实例的相关资料,需要的朋友可以参考下

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>

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

相关文章

  • android使用百度地图SDK获取定位信息示例

    android使用百度地图SDK获取定位信息示例

    这篇文章主要介绍了android使用百度地图SDK获取定位信息示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 使用Android系统提供的DownloadManager来下载文件

    使用Android系统提供的DownloadManager来下载文件

    本篇文章主要介绍了使用Android系统提供的DownloadManager来下载文件,可以将长时间的下载任务交给系统,完全由系统管理,有需要的可以了解下。
    2016-11-11
  • Android ViewPager实现动画切换效果

    Android ViewPager实现动画切换效果

    这篇文章主要为大家详细介绍了Android ViewPager实现动画切换效果的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android控件ImageSwitcher实现左右图片切换功能

    Android控件ImageSwitcher实现左右图片切换功能

    这篇文章主要为大家详细介绍了Android控件ImageSwitcher实现左右图片切换功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android实现画板功能(二)

    Android实现画板功能(二)

    这篇文章主要为大家详细介绍了Android实现画板功能的第二篇,使用imageView,bitmap方式实现画板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Android编程实现Dialog窗体监听的方法

    Android编程实现Dialog窗体监听的方法

    这篇文章主要介绍了Android编程实现Dialog窗体监听的方法,结合实例形式分析了Android针对Dialog对话框窗体事件监听与响应相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • Android checkbox的listView(多选,全选,反选)具体实现方法

    Android checkbox的listView(多选,全选,反选)具体实现方法

    由于listview的一些特性,刚开始写这种需求的功能的时候都会碰到一些问题,重点就是存储每个checkbox的状态值,在这里分享出了完美解决方法:
    2013-06-06
  • Android-Zxing实现二维码的扫描与生成

    Android-Zxing实现二维码的扫描与生成

    本文主要介绍了Android中Zxing实现二维码的扫描与生成的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Android开发VR实战之播放360度全景视频

    Android开发VR实战之播放360度全景视频

    这篇文章主要为大家详细介绍了Android开发VR实战之播放360度全景视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android studio案例之实现电话拨号

    Android studio案例之实现电话拨号

    这篇文章主要介绍了Android studio案例之实现电话拨号,并有详细的步骤和实现代码,对此感兴趣的同学,可以参考下
    2021-04-04

最新评论