全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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  # 切圆图  # 切圆图如何实现  # 切圆图实例详解  # Android自定义view实现圆形、圆角和椭圆图片(BitmapShader图形渲染)  # Android基础之使用Fragment控制切换多个页面  # android客户端从服务器端获取json数据并解析的实现代码  # Android 动画之ScaleAnimation应用详解  # android调试工具DDMS的使用详解  # Android按钮单击事件的四种常用写法总结  # Android的Activity跳转动画各种效果整理  # Android SQLite数据库增删改查操作的使用详解  # Android 动画之RotateAnimation应用详解  # Android基础之Fragment与Activity交互详解  # Android开发之SQLite的使用方法  # Android中判断网络连接是否可用及监控网络状态  # 解析android中ProgressBar的用法  # android 调用系统的照相机和图库实例详解  # 希望能  # 谢谢大家  # setAntiAlias  # Shader  # setDither  # true  # getWidth  # RectF  # Rect  # dst  # getHeight  # shaer  # protected  # Override  # null  # Canvas  # onDraw  # void  # MIRROR  # TileMode 


相关文章: 制作农业网站的软件,比较好的农业网站推荐一下?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  实例解析Array和String方法  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  太平洋网站制作公司,网络用语太平洋是什么意思?  七夕网站制作视频,七夕大促活动怎么报名?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何在企业微信快速生成手机电脑官网?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  青岛网站建设如何选择本地服务器?  ,怎么用自己头像做动态表情包?  定制建站流程步骤详解:一站式方案设计与开发指南  如何快速搭建响应式可视化网站?  如何挑选高效建站主机与优质域名?  如何用低价快速搭建高质量网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站之星客服服务时间及联系方式如何?  做企业网站制作流程,企业网站制作基本流程有哪些?  大连网站设计制作招聘信息,大连投诉网站有哪些?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  制作网站外包平台,自动化接单网站有哪些?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  学校为何禁止电信移动建设网站?  如何登录建站主机?访问步骤全解析  如何使用Golang table-driven基准测试_多组数据测量函数效率  如何在IIS7上新建站点并设置安全权限?  存储型VPS适合搭建中小型网站吗?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  如何用IIS7快速搭建并优化网站站点?  如何快速搭建FTP站点实现文件共享?  制作网站公司那家好,网络公司是做什么的?  已有域名和空间如何搭建网站?  如何快速重置建站主机并恢复默认配置?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  北京专业网站制作设计师招聘,北京白云观官方网站?  网站企业制作流程,用什么语言做企业网站比较好?  小程序网站制作需要准备什么资料,如何制作小程序?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  高防服务器租用指南:配置选择与快速部署攻略  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机如何安装配置?新手必看操作指南  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  宝塔建站后网页无法访问如何解决?  建站主机默认首页配置指南:核心功能与访问路径优化  网页设计与网站制作内容,怎样注册网站?  如何在腾讯云免费申请建站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。