全网整合营销服务商

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

免费咨询热线: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 


相关文章: 上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何在建站宝盒中设置产品搜索功能?  在线制作视频网站免费,都有哪些好的动漫网站?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  建站VPS配置与SEO优化指南:关键词排名提升策略  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何用狗爹虚拟主机快速搭建网站?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  如何制作算命网站,怎么注册算命网站?  小型网站制作HTML,*游戏网站怎么搭建?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  太平洋网站制作公司,网络用语太平洋是什么意思?  高端云建站费用究竟需要多少预算?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  建站之星如何防范黑客攻击与数据泄露?  Android自定义控件实现温度旋转按钮效果  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  建站之星伪静态规则如何设置?  北京网站制作网页,网站升级改版需要多久?  微信小程序 五星评分(包括半颗星评分)实例代码  建站之星3.0如何解决常见操作问题?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何通过FTP空间快速搭建安全高效网站?  建站VPS推荐:2025年高性能服务器配置指南  成都响应式网站开发,dw怎么把手机适应页面变成网页?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  建站之星如何开启自定义404页面避免用户流失?  如何在云主机上快速搭建网站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  家庭服务器如何搭建个人网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在阿里云完成域名注册与建站?  大型企业网站制作流程,做网站需要注册公司吗?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  建站之星导航如何优化提升用户体验?  香港网站服务器数量如何影响SEO优化效果?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  小型网站建站如何选择虚拟主机?  如何在香港服务器上快速搭建免备案网站?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  如何在阿里云购买域名并搭建网站?  北京制作网站的公司,北京铁路集团官方网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  中山网站推广排名,中山信息港登录入口?  建站之星如何一键生成手机站? 

您的项目需求

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