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. TI C66x DSP 四种内存保护问题 -之- 外设訪问corePac内部资源时的内存保护问题

    外设訪问corePac内部资源(L1,L2)时的内存保护等问题请參考以下两个blog.已经叙述的非常具体. "TI C66x DSP 系统events及其应用 - 2"," ...

  2. 浏览器下载img标签Base64图片

    https://blog.csdn.net/qq_42076140/article/details/82113622    原文地址 <a href="javascript:downl ...

  3. springMVC No mapping found for HTTP request with URI

    转载自:http://blog.sina.com.cn/s/blog_534f69a00101332u.html 1.问题: No mapping found for HTTP request wit ...

  4. Linux桌面词典 GoldenDict词典

    GoldenDict 是一款不错的.与StarDict(星际译王)类似的词典软件.它使用 WebKit作为渲染核心,格式化.颜色.图像.链接等支持一应俱全:支持多种词典文件格式,包括Babylon的 ...

  5. 概率编程:《贝叶斯方法概率编程与贝叶斯推断》中文PDF+英文PDF+代码

    贝叶斯推理的方法非常自然和极其强大.然而,大多数图书讨论贝叶斯推理,依赖于非常复杂的数学分析和人工的例子,使没有强大数学背景的人无法接触.<贝叶斯方法概率编程与贝叶斯推断>从编程.计算的角 ...

  6. leetcode第一刷_Scramble String

    字符串的好题. 题干解释的很复杂.一下让人不知所措了. 这道题究竟是什么意思呢?终于的结果是把一个字符串中字母的顺序打乱了,让你推断一个字符串能不能由还有一个字符串打乱得到.那打乱这个过程是怎么做的呢 ...

  7. Appium Android Bootstrap源代码分析之启动执行

    通过前面的两篇文章<Appium Android Bootstrap源代码分析之控件AndroidElement>和<Appium Android Bootstrap源代码分析之命令 ...

  8. vue 打包成 apk 文件(修改路径)

    第一个坑:文件引用路径 现在项目我们什么都没动,是初始化之后直接打包的状态,打开dist/index.htmnl文件整个网页都是一片空白的. 爬坑: 打开 config文件夹/index.js文件 a ...

  9. css+ js 实现圆环时钟

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. POJ 2039 Floyd

    句意理解题 解释输入好啦: 第一行n个数 m场电影 随后m行 每行的第一个数 代表 有k奶牛在这个电影中出现过 随后k个数 是奶牛的编号 如果两头奶牛在同一个电影中出现过 相互度为1 奶牛们的相互度可 ...