“`

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在Button按钮上同时显示文字和图片
  2. android ViewFlipper实现图片轮播
  3. Android如何使用XML创建一个环形渐变颜色图片
  4. Android 旋转图片
  5. Android 获取网络图片
  6. Android 图片加载缓存
  7. Android 系统图片
  8. 图片压缩
  9. Android三种方法设置ImageView的图片

随机推荐

  1. 常用 Git 指令整理
  2. Spring 的核心特性
  3. CCNP(ISCW)实验:用SDM配置GRE OVER IPSEC
  4. Spring-IoC
  5. 自建 GitLab,却玩到了 VMware
  6. Spring bean 依赖查找
  7. 这波 JVM 面试题解答,绝对给你面试加分
  8. JVM 常用配置参数(Java 8)
  9. Spring IoC 依赖注入(支持哪些数据类型?)
  10. 每个技术人,都有一个变现的梦