Android开发之自定义ImageView圆角图片的方法
生活随笔
收集整理的這篇文章主要介紹了
Android开发之自定义ImageView圆角图片的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
老套路看圖:
實現方法非常簡單,使用ClipPath切割就可以了:
完整代碼如下:dpUtils工具類就不發了,自己寫下吧
import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Path; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.widget.ImageView;import com.gfan.xiayiye5.utils.DpUtils;/*** @author xiayiye5* 2020年11月14日15:21:42* 自定義圓角圖片*/ @SuppressLint("AppCompatCustomView") public class RadiusImageView extends ImageView {/*** 圓角大小*/private int radiusSize = DpUtils.dip2px(getContext(), 10);public RadiusImageView(Context context) {super(context, null);}public RadiusImageView(Context context, @Nullable AttributeSet attrs) {super(context, attrs, 0);}public RadiusImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}private void init() {}/*** 設置圓角大小,設置后需要再次刷新下當前view,使用invalidate()或者postInvalidate()刷新都可以的** @param size dp值*/public void setRadiusSize(int size) {radiusSize = DpUtils.dip2px(getContext(), size);invalidate(); // postInvalidate();}@Overrideprotected void onDraw(Canvas canvas) {if (getWidth() > radiusSize && getHeight() > radiusSize) {@SuppressLint("DrawAllocation")Path path = new Path();path.moveTo(radiusSize, 0);path.lineTo(getWidth() - radiusSize, 0);path.quadTo(getWidth(), 0, getWidth(), radiusSize);path.lineTo(getWidth(), getHeight() - radiusSize);path.quadTo(getWidth(), getHeight(), getWidth() - radiusSize, getHeight());path.lineTo(radiusSize, getHeight());path.quadTo(0, getHeight(), 0, getHeight() - radiusSize);path.lineTo(0, radiusSize);path.quadTo(0, 0, radiusSize, 0);canvas.clipPath(path);}super.onDraw(canvas);} }如何使用呢?
在布局中直接使用該控件就可以了:
<!-- 下面的com.gfan.xiayiye5.view.RadiusImageView換成自己路徑就好了 --><com.gfan.xiayiye5.view.RadiusImageViewandroid:id="@+id/ivLastLoginId"android:layout_width="50dp"android:layout_height="50dp"android:layout_below="@+id/tvLastLoginId" />再次非常感謝原博主:博主鏈接
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Android开发之自定义ImageView圆角图片的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cdn服务器是什么
- 下一篇: android sina oauth2.