东莞小学网站建设,网站域名需要购买吗,陈田拆车件网上商城,网站开发创意设计Android之布局转圆角 文章目录 Android之布局转圆角说明一、效果图二、实现步骤1.自定义RoundRelativeLayout2.使用 总结 说明
很多需求比较无语#xff0c;需要某个布局转圆角#xff0c;像个显眼包一样#xff0c;所以为了满足显眼包#xff0c;必须整呐提示#xff1a…Android之布局转圆角 文章目录 Android之布局转圆角说明一、效果图二、实现步骤1.自定义RoundRelativeLayout2.使用 总结 说明
很多需求比较无语需要某个布局转圆角像个显眼包一样所以为了满足显眼包必须整呐提示以下是本篇文章正文内容下面案例可供参考
一、效果图
说明轮播图可以直接转圆角图片也可以我这里只是在轮播图外层嵌套了一个RoundRelativeLayout直接对RoundRelativeLayout进行转角。
二、实现步骤
1.自定义RoundRelativeLayout 代码如下示例 public class RoundRelativeLayout extends RelativeLayout {private final RectF roundRect new RectF();private final Paint maskPaint new Paint();private final Paint zonePaint new Paint();private Context mContext;private float rect_adius 20; //圆角大小public RoundRelativeLayout(Context context) {super(context);init(context);}public RoundRelativeLayout(Context context, AttributeSet attrs) {super(context, attrs);init(context);}public RoundRelativeLayout(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init(context);}private void init(Context context) {this.mContext context;maskPaint.setAntiAlias(true);maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));zonePaint.setAntiAlias(true);zonePaint.setColor(Color.WHITE);}Overrideprotected void onLayout(boolean changed, int left, int top, int right, int bottom) {super.onLayout(changed, left, top, right, bottom);int w getWidth();int h getHeight();roundRectSet(w, h);}Overridepublic void draw(Canvas canvas) {canvasSetLayer(canvas);super.draw(canvas);canvas.restore();}/*** 从新设置圆角** param adius*/public void setRectAdius(float adius) {rect_adius adius;invalidate();}/*** 圆角区域设置** param width* param height*/private void roundRectSet(int width, int height) {roundRect.set(0, 0, width, height);}/*** 画布区域裁剪** param canvas*/private void canvasSetLayer(Canvas canvas) {canvas.saveLayer(roundRect, zonePaint, Canvas.ALL_SAVE_FLAG);canvas.drawRoundRect(roundRect, rect_adius, rect_adius, zonePaint);//canvas.saveLayer(roundRect, maskPaint, Canvas.ALL_SAVE_FLAG);}
}2.使用
说明其实xml布局引用自定义这个就已经成功转角了这里贴一下设置布局背景的代码跟正常设置背景一样。
relative_back.setBackgroundColor(Color.parseColor(#ffffff))总结
其实就是自定义RoundRelativeLayout进行转角角度可设置很简单。