使用Picasso实现图片圆角和图片圆形
生活随笔
收集整理的這篇文章主要介紹了
使用Picasso实现图片圆角和图片圆形
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者很好的文章訪問量缺很少也很難搜到(我這里插個眼以后用的到)
作者:先知丨先覺
來源:CSDN
原文:https://blog.csdn.net/github_33304260/article/details/52033539
(圖片圓角做的不是很好我試了試)
導入依賴
compile 'com.squareup.picasso:picasso:2.5.2'代碼使用
Picasso.with(Activity.this).load(URL).transform(new CircleCornerForm()).error(R.drawable.head).into(ImageView);
加載圓形圖片
import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Paint;import com.squareup.picasso.Transformation;/*** Created libin on 2016/4/25.* 圓形圖片*/ public class CircleTransform implements Transformation {@Overridepublic Bitmap transform(Bitmap source) {int size = Math.min(source.getWidth(), source.getHeight());int x = (source.getWidth() - size) / 2;int y = (source.getHeight() - size) / 2;Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);if (squaredBitmap != source) {source.recycle();}Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());Canvas canvas = new Canvas(bitmap);Paint paint = new Paint();BitmapShader shader = new BitmapShader(squaredBitmap,BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);paint.setShader(shader);paint.setAntiAlias(true);float r = size / 2f;canvas.drawCircle(r, r, r, paint);squaredBitmap.recycle();return bitmap;}@Overridepublic String key() {return "circle";} }
加載圓角圖片
import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF;import com.squareup.picasso.Transformation;/*** Created by libin on 16/7/22.* 圓角切片*/ public class CircleCornerForm implements Transformation {@Overridepublic Bitmap transform(Bitmap source) {int widthLight = source.getWidth();int heightLight = source.getHeight();Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(output);Paint paintColor = new Paint();paintColor.setFlags(Paint.ANTI_ALIAS_FLAG);RectF rectF = new RectF(new Rect(0, 0, widthLight, heightLight));canvas.drawRoundRect(rectF, widthLight / 5, heightLight / 5, paintColor);//這里除的數越大角度越小Paint paintImage = new Paint();paintImage.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP));canvas.drawBitmap(source, 0, 0, paintImage);source.recycle();return output;}@Overridepublic String key() {return "roundcorner";} }
?
轉載于:https://www.cnblogs.com/xuexidememeda/p/10329643.html
總結
以上是生活随笔為你收集整理的使用Picasso实现图片圆角和图片圆形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛逼的Git!!!
- 下一篇: 快领!了不起的程序员专属红包封面!!