Android 圆角图片

import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
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.telephony.TelephonyManager;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
yuanjiaotupian();
}

private void yuanjiaotupian() {
// TODO Auto-generated method stub
ImageView iv = (ImageView) findViewById(R.id.iv_main_yuanjiao);
Drawable drawable = getResources().getDrawable(R.drawable.asd);
BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
Bitmap bitmap = bitmapDrawable.getBitmap();
BitmapDrawable bd = new BitmapDrawable(toRoundCorner(bitmap, 30));
iv.setBackgroundDrawable(bd);
}

/**
* 获取圆角位图的方法
*
* @param bitmap
* 需要转化成圆角的位图
* @param pixels
* 圆角的度数,数值越大,圆角越大
* @return 处理后的圆角位图
*/
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;
}

}

更多相关文章

  1. Python爬取近十年TIOBE编程语言热度数据并可视化可视化
  2. 可变序列长度数据的分类
  3. 如何优化Android中的位图绘制?

随机推荐

  1. Android(安卓)数据存取到文件当中
  2. 【Android(安卓)Developers Training】 9
  3. Android的百度地图开发BaiduMapApiDemo
  4. 下载 android source 之repo获取
  5. android的Jetpack的navigation原理详解
  6. 问题资源Android(安卓)lint 能够做的事情
  7. 【转】android中onMeasure初看,深入理解
  8. Android(安卓)基础 MaterialButton
  9. Android(安卓)- 隐藏最顶端的通知条(Top
  10. 工欲善其事,必先利其器 -- Mac 软件推荐(序