1. package xiaosi.RoundConcer;
    2. import android.app.Activity;
    3. import android.graphics.Bitmap;
    4. import android.graphics.Bitmap.Config;
    5. import android.graphics.BitmapFactory;
    6. import android.graphics.Canvas;
    7. import android.graphics.Paint;
    8. import android.graphics.PorterDuff.Mode;
    9. import android.graphics.PorterDuffXfermode;
    10. import android.graphics.Rect;
    11. import android.graphics.RectF;
    12. import android.os.Bundle;
    13. import android.widget.ImageView;
    14. public class RoundConcerActivity extends Activity
    15. {
    16. /** Called when the activity is first created. */
    17. private ImageView roundImage = null;
    18. @Override
    19. public void onCreate(Bundle savedInstanceState)
    20. {
    21. super.onCreate(savedInstanceState);
    22. setContentView(R.layout.main);
    23. roundImage = (ImageView)findViewById(R.id.roundconcer);
    24. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a);
    25. roundImage.setImageBitmap(getRoundCornerImage(bitmap, 50));
    26. }
    27. public static Bitmap getRoundCornerImage(Bitmap bitmap, int roundPixels)
    28. {
    29. //创建一个和原始图片一样大小位图
    30. Bitmap roundConcerImage = Bitmap.createBitmap(bitmap.getWidth(),
    31. bitmap.getHeight(), Config.ARGB_8888);
    32. //创建带有位图roundConcerImage的画布
    33. Canvas canvas = new Canvas(roundConcerImage);
    34. //创建画笔
    35. Paint paint = new Paint();
    36. //创建一个和原始图片一样大小的矩形
    37. Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
    38. RectF rectF = new RectF(rect);
    39. // 去锯齿
    40. paint.setAntiAlias(true);
    41. //画一个和原始图片一样大小的圆角矩形
    42. canvas.drawRoundRect(rectF, roundPixels, roundPixels, paint);
    43. //设置相交模式
    44. paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    45. //把图片画到矩形去
    46. canvas.drawBitmap(bitmap, null, rect, paint);
    47. return roundConcerImage;
    48. }
    49. }

Android学习笔记之详细讲解画圆角图片的更多相关文章

  1. Android学习笔记-Adapter基础讲解

    本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式 ...

  2. Android学习笔记:如何设置ImageView中图片的显示方式

    我们在用ImageView显示图片时,很多情况下图片的大小与ImageView的尺寸不是完全一样的.这时就涉及到该如何设置显示图片了. ImageView有个重要的属性是ScaleType,该属性用以 ...

  3. Android学习笔记:使用ViewPager组件实现图片切换

    在很多App中,尤其是第一次安装启动后,都会出现几个图片进行一些app的介绍和说明,图片可以随着滑动而切换. 我们这里利用 ViewPager组件来演示如何实现这一点. 1.创建一个app工程,默认创 ...

  4. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  5. 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...

  6. 【转】 Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask

    目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注 ...

  7. 【转】 Pro Android学习笔记(三五):Menu(6):XML方式 & PopUp菜单

    目录(?)[-] 利用XML创建菜单 XML的有关属性 onClick事件 Pop-up菜单 利用XML创建菜单 在代码中对每个菜单项进行设置,繁琐且修改不灵活,不能适配多国语言的要求,可以利用资源进 ...

  8. 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView

    目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...

  9. 【转】Pro Android学习笔记(七):了解Content Provider(下上)

    我们通过一个Content Provider小例子进行详细说明.数据源是一个SQLite数据库,名字为books.db,该数据库只含有一个表格,名字为books.表格中含有name,isbn,auth ...

随机推荐

  1. 杯子 (glass)

    题目 试题1:杯子 (glass)  源代码:glass.cpp  输入文件:glass.in  输出文件:glass.out  时间限制:1s  空间限制:256MB 题目描述 小明买了N个容积可以 ...

  2. silverlight wcf mvvm

    近期工作比較忙.也没有时间发表新内容,今天有点时间,就顺便写点,说说近期开发的一套系统心得. 我刚去这个公司已经将前端确定要用Silverlight,我不知道为什么要选择这个,或许是为以后转C/S系统 ...

  3. thinkphp跨模块调用

    thinkphp跨模块调用 跨模块调用模板 return $view->fetch('admin@user/add'); 全路径模板调用: return $view->fetch(APP_ ...

  4. thinkphp5项目--企业单车网站(七)

    thinkphp5项目--企业单车网站(七) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps:/ ...

  5. NARF(Normal Aligned Radial Feature)关键点

    NARF(Normal Aligned Radial Feature)关键点是为了从深度图像中识别物体而提出的,对NARF关键点的提取过程有以下要求: a) 提取的过程考虑边缘以及物体表面变化信息在内 ...

  6. 数据分析-jupyter

    安装 jupyter pip install jupyter 快捷键 插入 cell : a  b 删除cell  :  x 切换cell的模式: m  y 执行  shift +enter 查看帮助 ...

  7. IDEA集成Python插件,SDK配置

    (第一次写在博客园添加随笔, 会有些生硬,有不对的地方和描述错误之处希望可以指出) 最近在学习一个新的知识点,涉及到Python的使用,因为第一次接触很多地方都不是很明白 ,好,废话不多说,现在直接上 ...

  8. 【Uva 307】Sticks

    [Link]: [Description] 给你最多n个棍子; (n< = 64) 每根棍子长度(1..50) 问你这n根棍子,可以是由多少根长度为x的棍子分割出来的; x要求最小 [Solut ...

  9. 一招制胜---详解分布式系统里session同步

    一招制胜---详解分布式系统里session同步 几周前,有个盆友问老王,说现在有多台服务器,怎么样来解决这些服务器间的session同步问题?老王一下就来精神了,因为在n年以前,老王还在学校和几个同 ...

  10. Spring Cloud学习笔记【二】Eureka 服务提供者/服务消费者(ribbon)

    Ribbon 是 Netflix 发布的开源项目,主要功能是为 REST 客户端实现负载均衡.它主要包括六个组件: ServerList,负载均衡使用的服务器列表.这个列表会缓存在负载均衡器中,并定期 ...