ImageIolder加载圆形图片

<span style="font-family: Arial, Helvetica, sans-serif;">import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;</span>

import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.drawable.Drawable;
 

import com.nostra13.universalimageloader.core.assist.LoadedFrom;
import com.nostra13.universalimageloader.core.imageaware.ImageAware;
public class Displaer extends RoundedBitmapDisplayer{

	public Displaer(int cornerRadiusPixels) {
		super(cornerRadiusPixels);
		// TODO Auto-generated constructor stub
	}
	 @Override
	    public void display(Bitmap bitmap, ImageAware imageAware,
	                        LoadedFrom loadedFrom) {
	        imageAware.setImageDrawable(new CircleDrawable(bitmap, margin));
	    }
	 
	    public static class CircleDrawable extends Drawable {
	        private final int margin;
	        private final RectF mRect = new RectF();
	        private final BitmapShader bitmapShader;
	        private final Paint paint;
	        private RectF mBitmapRect;
	 
	        public CircleDrawable(Bitmap bitmap, int margin) {
	            this.margin = 0;
	            // 创建着色器
	            bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,
	                    Shader.TileMode.CLAMP);
	            mBitmapRect = new RectF(margin, margin, bitmap.getWidth() - margin,
	                    bitmap.getHeight() - margin);
	            // 设置画笔
	            paint = new Paint();
	            paint.setAntiAlias(true);
	            paint.setShader(bitmapShader);
	        }
	 
	        // 画圆,覆盖原来的位图
	        @Override
	        protected void onBoundsChange(Rect bounds) {
	            super.onBoundsChange(bounds);
	            mRect.set(margin, margin, bounds.width() - margin, bounds.height()
	                    - margin);
	 
	            // 调整位图,设置该矩阵,转换映射源矩形和目的矩形
	            Matrix shaderMatrix = new Matrix();
	            shaderMatrix.setRectToRect(mBitmapRect, mRect,
	                    Matrix.ScaleToFit.FILL);
	            // 设置着色器矩阵
	            bitmapShader.setLocalMatrix(shaderMatrix);
	        }
	 
	        // 画出其边界(通过设置的setBounds)
	        @Override
	        public void draw(Canvas canvas) {
	            canvas.drawRoundRect(mRect, mRect.width()/2 , mRect.height()/2,
	                    paint);
	        }
	 
	        /**
	         * 返回此绘制对象的不透明度/透明度 ,返回的值是抽象的格式常数的PixelFormat之一:未知,半透明,透明或不透明
	         * */
	        @Override
	        public int getOpacity() {
	            // 半透明
	            return PixelFormat.TRANSLUCENT;
	        }
	 
	        // 设置透明度
	        @Override
	        public void setAlpha(int alpha) {
	            paint.setAlpha(alpha);
	        }
	 
	        // 彩色滤光片(通过设置setColorFilter)
	        @Override
	        public void setColorFilter(ColorFilter cf) {
	            paint.setColorFilter(cf);
	        }
	    }
}

自定义画圆形  复制到你的自定义包下  以后加载图片就可以用它


接下来就是加载步骤

:::

private  DisplayImageOptions options = new DisplayImageOptions.Builder()    
    .cacheInMemory(true)    
    .cacheOnDisk(true)    
    .bitmapConfig(Config.RGB_565)    
    .displayer(new Displaer(1))//调用上方方法
    .build(); 

//加载图片
ImageLoader.getInstance().displayImage(图片url地址, 空间<span style="font-family: Arial, Helvetica, sans-serif;">, options);</span>

到这里就结束了 圆形自然就出来了..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值