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. HDU 4923 Room and Moor (单调栈)

    题意: 给你一个A数列,让你求一个单调递增的B数列(0<=bi<=1),使得sum{(ai-bi)^2}最小. 思路: 很明显,如果A = 0...01...1,那么bi=ai即可. 可以 ...

  2. ArcGIS api for javascript——设置自定义范围和空间参考

    描述 这个示例展示了在创建地图时如果定义一个自定义的范围和空间参考. 在 ArcGIS JavaScript API的1.0和1.1版本,任何要使用的地图服务图层都需要和地图的空间参考一致.1.2版本 ...

  3. Visual Studio2008 和2010 执行程序出现的黑框马上消失解决方法

    1 在程序最后加         system("PAUSE");  要注意包括头文件#include"stdlib.h"   //system须要调用这个   ...

  4. Oracle 排序中 nulls first 与 nulls last 的用法

    Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 ...

  5. P3507 [POI2010]GRA-The Minima Game

    题目描述 Alice and Bob learned the minima game, which they like very much, recently. The rules of the ga ...

  6. 【Docker基本操作】

    关于镜像的操作 docker search centos 搜索所有centos的镜像 docker pull centos 获取centos镜像 docker images 或 docker imag ...

  7. 【MySQL主从复制原理及搭建全过程】

    目录 准备工作 主从复制原理 开始搭建主从复制 本文将使用mariaDB数据库实现主从复制,其步骤与MySQL数据库无差异. MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护, ...

  8. 【Django】Cookie

    目录 Cookie介绍 操作Cookie 获取Cookie 设置 Cookie 删除Cookie @ Cookie介绍 Cookie的由来 大家都知道==HTTP协议是无状态的==. ==无状态的的意 ...

  9. Mirai僵尸网络重出江湖

    近年数度感染数十万台路由器的僵尸网络程序Mirai,虽然原创者已经落网判刑,但是Mirai余孽却在网络上持续变种,现在安全人员发现,Mirai已经将焦点转向Linux服务器了. 安全公司Netcout ...

  10. IDEA下使用maven的mybatis错误—XXXDao is not known to the MapperRegistry

    # IDEA下使用maven的mybatis常见错误(二) 错误类型二:mybatis.xml注册映射文件错误 错误提示:Type interface com.aynu.dao.CountryDao ...