android获得圆角图片
“`
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;
更多相关文章
- Android在Button按钮上同时显示文字和图片
- android ViewFlipper实现图片轮播
- Android如何使用XML创建一个环形渐变颜色图片
- Android 旋转图片
- Android 获取网络图片
- Android 图片加载缓存
- Android 系统图片
- 图片压缩
- Android三种方法设置ImageView的图片