“`

import com.loopj.android.image.SmartImageView;

import android.content.Context;
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.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;

public class RoundSmartImageView extends SmartImageView {
private Paint paint;

public RoundSmartImageView(Context context) {    this(context, null);}public RoundSmartImageView(Context context, AttributeSet attrs) {    this(context, attrs, 0);}public RoundSmartImageView(Context context, AttributeSet attrs, int defStyle) {    super(context, attrs, defStyle);    paint = new Paint();}/** * * 绘制圆形图片 *  * @author caizhiming */@Overrideprotected void onDraw(Canvas canvas) {    Drawable drawable = getDrawable();    if (null != drawable) {        Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();        Bitmap b = getCircleBitmap(bitmap, 14);        final Rect rectSrc = new Rect(0, 0, b.getWidth(), b.getHeight());        final Rect rectDest = new Rect(0, 0, getWidth(), getHeight());        paint.reset();        canvas.drawBitmap(b, rectSrc, rectDest, paint);    } else {        super.onDraw(canvas);    }}/** * * 获取圆形图片方法 *  * @param bitmap * @param pixels * @return Bitmap */private Bitmap getCircleBitmap(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 Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());    paint.setAntiAlias(true);    canvas.drawARGB(0, 0, 0, 0);    paint.setColor(color);    int x = bitmap.getWidth();    canvas.drawCircle(x / 2, x / 2, x / 2, paint);    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));    canvas.drawBitmap(bitmap, rect, rect, paint);    return output;}

}

xml中: <包名.view.RoundSmartImageView
android:id=”@+id/user_photo”
android:layout_width=”40dp”
android:layout_height=”40dp” />
.java文件中调用:
RoundSmartImageView mImageView = (RoundSmartImageView) convertView.findViewById(R.id.user_photo);
mImageView.setImageUrl(job.getImgUrl(),R.drawable.ic_launcher); //如果job.getImagUrl()为空,默认加载R.drawable.ic_launcher;

更多相关文章

  1. android ViewFlipper实现图片轮播
  2. Android如何使用XML创建一个环形渐变颜色图片
  3. Android在Button按钮上同时显示文字和图片
  4. Android(安卓)自定义ViewPager 实现轮播图
  5. Android(安卓)获取网络图片
  6. Android(安卓)旋转图片
  7. Android(安卓)系统图片
  8. Android(安卓)图片加载缓存
  9. 图片压缩

随机推荐

  1. 常用函数类型 常用数据类型
  2. .使用制作简版计算器与.九九乘法表
  3. PS合成技巧、改日期时间、修图改字、换背
  4. 在虚拟机中运行 Linux 的十大优点
  5. js对象、函数、日期对象----简易日历
  6. JavaScript格式的计算器以及乘法表
  7. JS 简单计算器、九九乘法表实例演示
  8. 文件本质与作用、关键字的学习
  9. Unity程序结合云渲染技术在手机中使用要
  10. CSS:模态框定位实战