qq三国怎么快速开技能:实现Android图片圆角

来源:百度文库 编辑:偶看新闻 时间:2024/07/04 05:11:15
实现Android图片圆角时间:2011-10-13 15:41来源:未知 作者:匿名 点击:19次-
public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {                     Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);           Canvas canvas = new Canvas(output);             final int color = 0xff424242;           final Paint paint = new Paint();           final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());           final RectF rectF = new RectF(rect);           final float roundPx = pixels;             paint.setAntiAlias(true);           canvas.drawARGB(0, 0, 0, 0);           paint.setColor(color);           canvas.drawRoundRect(rectF, roundPx, roundPx, paint);             paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));           canvas.drawBitmap(bitmap, rect, rect, paint);             return output;      }当我们需要圆角的时候,调用这个方法,第一个参数是传入需要转化成圆角的图片,第二个参数是圆角的度数,数值越大,圆角越大
下面兴趣个例子,我有一个LinearLayout,我想把它的背景图片设置成圆角
布局文件main.xml

package com.test.demo;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.RectF;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.widget.ImageView;import android.widget.LinearLayout;public class MyActivity extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main); //    Drawable drawable = getResources().getDrawable(R.drawable.bg); //    BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; //    Bitmap bitmap = bitmapDrawable.getBitmap();                 LinearLayout layout = (LinearLayout) findViewById(R.id.layout);         Drawable drawable = getResources().getDrawable(R.drawable.bg);         BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;         Bitmap bitmap = bitmapDrawable.getBitmap();                 BitmapDrawable bbb = new BitmapDrawable(toRoundCorner(bitmap, 30));         layout.setBackgroundDrawable(bbb);         //ImageView imageView = (ImageView) findViewById(R.id.imgShow);         //imageView.setImageBitmap(MyActivity.getRoundedCornerBitmap(bitmap));         //imageView.setImageBitmap(MyActivity.toRoundCorner(bitmap, 20));     }     public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {                     Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);           Canvas canvas = new Canvas(output);             final int color = 0xff424242;           final Paint paint = new Paint();           final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());          final RectF rectF = new RectF(rect);           final float roundPx = pixels;            paint.setAntiAlias(true);         canvas.drawARGB(0, 0, 0, 0);          paint.setColor(color);           canvas.drawRoundRect(rectF, roundPx, roundPx, paint);             paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));          canvas.drawBitmap(bitmap, rect, rect, paint);             return output;      }} 更多 顶一下(0)0.00%踩一下(0)0.00%------分隔线---------------------------- 上一篇:动态改变Android控件大小 下一篇:实现Android的消息通知栏 收藏 挑错 推荐 打印 本文来自:Java问问(http://www.javaask.com) 详细出处参考:http://www.javaask.com/mobile/android/2011/1013/9118.html