android矩形圆角,安卓图标圆角规范

Android studio圆角矩形的布局如何设计?

你可以使用shape定义一个圆角矩形,并将其作为布局的背景即可。

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了子长免费建站欢迎大家使用!

圆角矩形的shape代码如下:

//定义四个圆角 文件名shape_round_corner

shape xmlns:android=""

solid android:color="#ff00" /

corners android:topLeftRadius="12dp"

android:topRightRadius="12dp"

android:bottomRightRadius="12dp"

android:bottomLeftRadius="12dp"/

stroke android:width="1dp" android:color="#ff0" /

/shape

设置背景代码如下:

LinearLayout

android:layout_width="300dp"

android:layout_height="300dp"

android:layout_marginBottom="10dp"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:layout_marginTop="10dp"

android:alpha="0.8"

android:background="@drawable/shape_round_corner"

/LinearLayout

Android 圆角、圆形 ImageView 实现

我们要实现的图片控件继承自 AppCompatImageView ,它是 ImageView 的子类,但提供了更好的兼容性,我们在此基础上添加了若干自定义的属性和方法以实现最终的 NiceImageView :

要实圆角或者圆形的显示效果,就是对图片显示的内容区域进行“裁剪”,只显示指定的区域即可。如何做呢?

一种比较直接的办法是这样的,由于图片是被绘制在画布上的,所以用 canvas 的 clipPath() 方法先将画布裁剪成指定形状,这样就能让图片按指定形状显示了,重新 draw() 方法即可:

这样使用 src 、 background 属性给ImageView设置显示的图片都能达到预期的显示效果。但是由于 clipPath() 方法不支持抗锯齿,图片边缘会有明显的毛糙感,体验并不理想,所以需要寻找其它方法。

另一种方法是使用图像的 Alpha 合成模式 ,即

PorterDuff 来实现, 官方文档 。这里我们使用其中的 DST_IN 模式。整个过程就是先绘制目标图像,也就是图片;再绘制原图像,即一个圆角矩形或者圆形,这样最终目标图像只显示和原图像重合的区域。

到这里就实现了显示为圆角或者圆形了。但是需要通过 src 属性或者对应的方法来设置图片,否则不能达到预期效果。

绘制边框就相对容易理解了,只需要绘制一个指定样式的圆角矩形或者圆形即可:

当图片显示为圆形时,还可以绘制一个内边框,但圆角矩形的话由于圆角大小的问题,目前只能设置一个边框咯。

但是有个问题,绘制的边框会覆盖在图片上,如果边框太宽会导致图片的可见区域变小了,影像显示效果,像这样,左下角的花盆不见了:

那么如何让边框不覆盖在图片上呢?可以在 Alpha 合成绘制前先将画布缩小一定比例,最后再绘制边框,这样问题就解决了。

缩放后的ImageView显示区域的宽高就是原宽、高分别减去2倍的边框宽度,这样缩小的比例也就显而易见了。效果如下,左下角的花盆出来了:

遮罩可以理解为一层带透明度的颜色,遮罩默认不绘制,当制定了遮罩颜色时才会绘制,实现很简单:

例如加一个透明度30%的红色遮罩后的效果:

核心的实现逻辑就这些了,剩下的就是自定义属性和方法了,有兴趣的可以看源码,都很简单,希望对你有所帮助吧!

更多细节及用法见GitHub:

如果你需要实现类似钉钉的圆形组合头像,例如:

为什么Android 的App 图标慢慢的都开始使用圆角矩形

你说的大部分都是国产app吧,例如哔哩哔哩动画,虽然界面是符合Android Design 的,但是icon依然是iOS风、不符合Android Design 的圆角矩形,不过他们大部分也都是被MIUI带坏的=.=

关于icon的样式,Android Design 的官方文档有详细的介绍,先上原文链接(Iconography | Android Developers)

Use a distinct silhouette. Three-dimensional, front view, with a slight perspective as if viewed from above, so that users perceive some depth.可以看出来,Google 对icon 有以下几个要求:

轮廓鲜明(iOS app 的icon 就是一个反例)

要有立体感 (iOS 再次中枪)

像是从正面斜上一定角度看到的一样,使之看上去有深度(iOS 已经身亡)

综上所述,一切使用圆角矩形图标的Android 应用都是在耍流氓。

============================第二次打分割线=============================

关于Android 应用图标的更多标准,可以参照NovaDNG发表在锋客网上的两篇文章

» 如何设计符合 Android Design 的应用图标 锋客网

» 如何制作一个漂亮的 Android 应用图标 锋客网

android怎么画圆角的矩形

如果你是在自定义view的onDraw方法中:

RectF rectF = new RectF(100 ,100 ,500 ,500);//先画一个矩形

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);//创建画笔

paint.setColor(R.color.colorAccent);//添加画笔颜色

canvas.drawRoundRect(rectF , 30 ,30 , paint);//根据提供的矩形为四个角画弧线,(其中的数字:第一个表示X轴方向大小,第二个Y轴方向大小。可以改成其他的,你可以自己体验),最后添加画笔。

如果你是在布局中直接添加,楼上已经做出方法,我就不举例了。

android绘制圆角矩形为什么圆角边粗了

用shapedrawable画一个圆角矩形作为按钮的background,但是圆角的地方总是有点粗,和直接用xml做出来的背景不一样

float[]

outerR = new float[] { 20f, 20f, 20f, 20f, 0, 0, 0, 0 };

Shape shape = new

RoundRectShape(outerR, null, null);

image.setBackgroundDrawable(new

CustomShapeDrawable(shape,0xffea0000));

class CustomShapeDrawable extends

ShapeDrawable {

int color ;

public CustomShapeDrawable(Shape s,int

color) {

super(s);

this.color =

color;

}

@Override

protected void onDraw(Shape shape, Canvas

canvas, Paint paint) {

paint.setStrokeJoin(Join.ROUND);

paint.setDither(true);

paint.setAntiAlias(true);

paint.setStyle(Style.STROKE);

paint.setColor(0xffea0000);

paint.setStrokeWidth(4f);

shape.draw(canvas, paint);

}

}

把paint.setStrokeJoin这行去掉再试试

网页标题:android矩形圆角,安卓图标圆角规范
本文路径:https://www.cdcxhl.com/article10/dssdddo.html

成都网站建设公司_创新互联,为您提供用户体验品牌网站设计网站营销品牌网站制作手机网站建设网站改版

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司