Android学习笔记之详细讲解画圆角图片

[java] view plain copy

    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. }
时间: 2024-08-07 12:27:49

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

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

我们在用ImageView显示图片时,很多情况下图片的大小与ImageView的尺寸不是完全一样的.这时就涉及到该如何设置显示图片了. ImageView有个重要的属性是ScaleType,该属性用以表示显示图片的方式,共有很多种取值.另外也可以在xml文件中设置ImageView的android:scaleType属性达到调整效果. 这里我们介绍各种设置的含义: 1.ScaleType.CENTER(对应xml文件中为android:scaleType="center") 图片将位于

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

在很多App中,尤其是第一次安装启动后,都会出现几个图片进行一些app的介绍和说明,图片可以随着滑动而切换. 我们这里利用 ViewPager组件来演示如何实现这一点. 1.创建一个app工程,默认创建一个主 Activity 2.设置该Activity的布局文件activity_main.xml内容如下: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="

udacity android学习笔记: lesson 3

udacity android学习笔记: lesson 3 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/master/Markdown/an

Android学习笔记_78_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

Android学习笔记(四七):Content Provider初谈和Android联系人信息

Content Provider 在数据处理中,Android通常使用Content Provider的方式.Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据的增.删.改.查的操作.Android并不提供所有应用共享的数据存储,采用content Provider,提供简单便捷的接口来保持和获取数据,也可以实现跨应用的数据访问.简单地说,Android通过content Provider从数据的封装中获取信息. Content provider使用Uri

Android学习笔记(三九):资源resource(下)

在上一次学习笔记中,学习了XML文件的解析,实际上一些简单的activity属性,一些简单的信息,我们也可以放入xml文件中,可以直接放入res/vaules,由系统来进行解析,而无须使用XmlPullParser来自己分析. Dimension 用于字体大小,间距pading等等.常用的尺寸大小详细见Android 学习笔记(十四):Activity-AutoCompleteTextView,一般我们使用dip/dp和sp,因为和in(inch),mm,以及px(像素点)不同,它和物理屏幕尺寸

Android学习笔记(四五):互联网通信-HttpClient、XML解析(W3C)

前几日Android发布了4.0 Icecream,昨天上网发现Begining Book中有Edition 3的版本,比对一下,还是有相当的改动,不仅仅增加了tablet的部分,对原有的章节有有一些修订,前后的调整等等.先按Edtion 2的顺序看,相同章节的看Edtion 3,然后回头看Edition 3的Chapter 24.25(E2的36).26.27.28.29.44.45.46.47几个新增章节.同时将模拟器改为Android 2.3的版本,已适应可能新增的改动. 访问Intern

Android学习笔记(四一):SQLite的使用

SQLite是非常流行的嵌入式关系型数据库,轻载,速度快,而且是开源.在Android中,runtime提供SQLite,所以我们可以使用SQLite,而且是全集的SQLite.SQLite提供SQL接口,和一般的数据库一样.但是Android的API不采用JDBC,JDBC消耗太多的资源. SQLite支持绝大部分SQL-92标准,不支持:FOREIGN KEY constraints, nested transactions, RIGHT OUTER JOIN, FULL OUTER JOI

Android学习笔记(四二):SQLite、ListView、ContextMenu

继续上一个例子,结合ListView中对SQLite进行操作. 通过CursorAdapter在ListView中的数据呈现 在上一个例子中,我们可以对SQLite中的数据库进行增删改查,将数据读到游标Cursor中,然后一一读出.在Android中可以通过CursorAdapter直接将数据映射到ListView中,如下处理: public class Chapter22Test1 extends ListActivity{    private SQLiteDatabase  db = nu