A. android 4.0以上操作系统的Android手机之支持Aero图形效果吗就是毛玻璃特效。
只有Windows系统才有Aero这种叫法,至于Android半透明的效果从最早的Android手机开始基本上就有了,不过如果你指的如果是系统本身的半透明,要看你用的rom版本了,有些修改版本的rom是做了很多透明效果的,这与Android版本没有任何关系。
B. 谁说Android没有好的对话框
安卓自5.0后自带的对话框都是沉浸式体验,用户体验极佳。对话框的效果是可以自己定义的,圆角、背景透明,毛玻璃,过度动画,如果想要完全可以和IOS的效果一样,但是就不符合Android的material设计规范了。下面是两种效果的对话框
自定义圆角对话框 2.material效果的对话框
C. android 动态毛玻璃效果怎么做
android好像不能做,除非手机配置高,另外你们吧android搞得像ios一样,那就难看了,建议android就用原生MD风格就行了
D. 毛玻璃风格的魅力 (附毛玻璃风格图标案例教学)
• 什么是毛玻璃?
• 毛玻璃的作用
• 毛玻璃的实际运用
• 案例练习
毛玻璃是近两年来继新拟物化 “Neumorphism”之后又一流行起来的视觉设计风格,设计师 Michal Malewicz称呼它为 “Glassmorphism” (毛玻璃) [2]。这一词来源于glass (玻璃) + morphism (形态主义),其风格的最大特点是像玻璃一样的通透性,可以透过表层看到背景的模糊形态,因此而得名。
Michal总结的毛玻璃风格的四个特征为[2]:
• 使用背景模糊营造出的“玻璃透明质感”
•“多层级”使得物件看起来悬浮在界面上
•“鲜艳的色彩”突出了模糊的透明性
• 半透明物件的“轻薄微妙边框”
也有一部分人会把这种风格叫作“Aero”,此名来自Windows Vista开始使用的新型用户界面 - “Windows Aero”。“Aero”取自四个英文单词首字母:
• Authentic (真实)
• Energetic (动感)
• Reflective (反射)
• Open (开阔)
意为Aero界面是具立体感、令人震撼、具透视感和阔大的用户界面[3]。
毛玻璃其实并不是最近才出现的全新设计风格,它可以追溯到苹果早期的“Aqua”风格,以及Windows Vista的“Aero”。而自2020年以来毛玻璃再次得以发展,在电脑端和移动端用户界面中都可以看到毛玻璃风格的身影。尤其在设计网站Dribbble上毛玻璃风格更是风靡一时,直到现在还有很多毛玻璃风格的作品层出不穷。
有通透性的玻璃质感,页面轻盈,有呼吸感。
透过毛玻璃层,可以看到下面模糊的背景,并不会影响前景元素的展示。这种方式可以将层级很好的表达,虚化了背景而强化前景,用户也可以清晰地感知到自己身处何处。
毛玻璃图标的使用使得图标更加精致,具备透视感,可以增添页面的活力。
典型的例子 —— iOS以及macOS系统对毛玻璃作为页面背景的使用。比如,iPhone的搜索和控制中心页面,还有macOS的桌面。这样的处理可以让用户知道自己所处位置,也不会影响当前功能的视觉与使用。
这种目前在实际app及web页面设计中并不十分常见,但在设计中若有突出层级以及营造品质感的需求,毛玻璃背景不失为一种很好的表现形式。
我们可以看到iOS的底部标签栏和macOS的侧边栏都使用了毛玻璃背景形式,而微信标签栏也采用了相同形式。毛玻璃风格的标签栏主要优点在于弱化了标签栏和主体内容之间的割裂感,突出了主体内容。同样的,它并不会影响用户对标签栏按钮的操作使用。
毛玻璃同样适用于图标设计,精美的毛玻璃风格图标可以给我们的页面带来活力和品质感。可以看到,喜马拉雅App主页的图标就使用了毛玻璃风格。
除了作为背景、图标设计,毛玻璃还可用于一些特殊控件。比如下图QQ音乐App就使用了毛玻璃风格,作为小图标的背景,置于歌曲图片之上。这样的表现形式使得图片展示与其上的图标功能过渡自然,歌曲图片并不会有图片被挡住的不适感。
以上,可以看出,目前市场上对于毛玻璃的使用还是比较谨慎的,一般会用于比较小的控件中,比如标签栏和图标。通过细小的控件设计,营造出精致与品质感。大面积的毛玻璃形式还是要小心使用。
我们就以毛玻璃图标为例,做个小练习 (使用工具:Figma)。
在做的过程中,谨记Michal总结的4个特征 - 背景模糊 (玻璃透明质感)、多层级 (悬浮)、鲜艳色彩、轻薄微妙边框。
Step 1: 构建基础图标
这里我们以“照相机”图标为例,我们使用填充类型的图标,复制一个相机形状并缩小,旋转15度左右,置于正的相机右上方,图层置于后方。这里设置的整体大小为32x32px。
Step 2: 填充鲜艳色彩
我们给后方的相机填充一个鲜艳的色彩,也可以使用渐变色。这里使用的色值如下:
Step 3: 背景模糊
这里给前方的相机填充一个带透明度的相近颜色,添加背景模糊 (数值需要根据图标应用大小和实际操作效果而设置)。我们可以看到图标已经有了玻璃透明质感。
Step 4: 添加轻薄微妙边框
我们给玻璃透明质感的相机涂层添加一层淡淡的边框,数值参考下图。边框最好设置渐变色由x% 到0%,营造微妙感。
Step 5: 增添细节
相机的圆圈添加渐变效果,与背景更加融合。
这样我们一个毛玻璃风格的图标就做好了!可以试着自己练习设计一下其它的图标。
参考引用
[1] Food Ordering Website Design - By Tazrin
[2] Glassmorphism in user interfaces
[3] Windows Aero网络
[4] Sales Pop ‑ Social Proof Popup - By Ibrahim emran
[5] Food Delivery Dashboard - By Alexandra Ivanchenko
[6] Freebie: Iconly Glass | Dark - By Amir Baqian
E. android 实现毛玻璃透明效果有几种方法
1、如果系统的api在16以上,可以使用系统提供的方法直接处理图片
复制代码代码如下:
if (VERSION.SDK_INT > 16) {
Bitmap bitmap = sentBitmap.(sentBitmap.getConfig(), true);
final RenderScript rs = RenderScript.create(context);
final Allocation input = Allocation.createFromBitmap(rs, sentBitmap, Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(rs, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(radius /* e.g. 3.f */);
script.setInput(input);
script.forEach(output);
output.To(bitmap);
return bitmap;
}
2、 如果Api条件不满足,可以使用如下方法
复制代码代码如下:
@SuppressLint("NewApi")
public static Bitmap fastblur(Context context, Bitmap sentBitmap, int radius) {
Bitmap bitmap = sentBitmap.(sentBitmap.getConfig(), true);
if (radius < 1) {
return (null);
}
int w = bitmap.getWidth();
int h = bitmap.getHeight();
int[] pix = new int[w * h];
// Log.e("pix", w + " " + h + " " + pix.length);
bitmap.getPixels(pix, 0, w, 0, 0, w, h);
int wm = w - 1;
int hm = h - 1;
int wh = w * h;
int div = radius + radius + 1;
int r[] = new int[wh];
int g[] = new int[wh];
int b[] = new int[wh];
int rsum, gsum, bsum, x, y, i, p, yp, yi, yw;
int vmin[] = new int[Math.max(w, h)];
int divsum = (div + 1) >> 1;
divsum *= divsum;
int temp = 256 * divsum;
int dv[] = new int[temp];
for (i = 0; i < temp; i++) {
dv[i] = (i / divsum);
}
yw = yi = 0;
int[][] stack = new int[div][3];
int stackpointer;
int stackstart;
int[] sir;
int rbs;
int r1 = radius + 1;
int routsum, goutsum, boutsum;
int rinsum, ginsum, binsum;
for (y = 0; y < h; y++) {
rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
for (i = -radius; i <= radius; i++) {
p = pix[yi + Math.min(wm, Math.max(i, 0))];
sir = stack[i + radius];
sir[0] = (p & 0xff0000) >> 16;
sir[1] = (p & 0x00ff00) >> 8;
sir[2] = (p & 0x0000ff);
rbs = r1 - Math.abs(i);
rsum += sir[0] * rbs;
gsum += sir[1] * rbs;
bsum += sir[2] * rbs;
if (i > 0) {
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
} else {
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
}
}
stackpointer = radius;
for (x = 0; x < w; x++) {
r[yi] = dv[rsum];
g[yi] = dv[gsum];
b[yi] = dv[bsum];
rsum -= routsum;
gsum -= goutsum;
bsum -= boutsum;
stackstart = stackpointer - radius + div;
sir = stack[stackstart % div];
routsum -= sir[0];
goutsum -= sir[1];
boutsum -= sir[2];
if (y == 0) {
vmin[x] = Math.min(x + radius + 1, wm);
}
p = pix[yw + vmin[x]];
sir[0] = (p & 0xff0000) >> 16;
sir[1] = (p & 0x00ff00) >> 8;
sir[2] = (p & 0x0000ff);
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
rsum += rinsum;
gsum += ginsum;
bsum += binsum;
stackpointer = (stackpointer + 1) % div;
sir = stack[(stackpointer) % div];
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
rinsum -= sir[0];
ginsum -= sir[1];
binsum -= sir[2];
yi++;
}
yw += w;
}
for (x = 0; x < w; x++) {
rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
yp = -radius * w;
for (i = -radius; i <= radius; i++) {
yi = Math.max(0, yp) + x;
sir = stack[i + radius];
sir[0] = r[yi];
sir[1] = g[yi];
sir[2] = b[yi];
rbs = r1 - Math.abs(i);
rsum += r[yi] * rbs;
gsum += g[yi] * rbs;
bsum += b[yi] * rbs;
if (i > 0) {
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
} else {
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
}
if (i < hm) {
yp += w;
}
}
yi = x;
stackpointer = radius;
for (y = 0; y < h; y++) {
// Preserve alpha channel: ( 0xff000000 & pix[yi] )
pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum];
rsum -= routsum;
gsum -= goutsum;
bsum -= boutsum;
stackstart = stackpointer - radius + div;
sir = stack[stackstart % div];
routsum -= sir[0];
goutsum -= sir[1];
boutsum -= sir[2];
if (x == 0) {
vmin[y] = Math.min(y + r1, hm) * w;
}
p = x + vmin[y];
sir[0] = r[p];
sir[1] = g[p];
sir[2] = b[p];
rinsum += sir[0];
ginsum += sir[1];
binsum += sir[2];
rsum += rinsum;
gsum += ginsum;
bsum += binsum;
stackpointer = (stackpointer + 1) % div;
sir = stack[stackpointer];
routsum += sir[0];
goutsum += sir[1];
boutsum += sir[2];
rinsum -= sir[0];
ginsum -= sir[1];
binsum -= sir[2];
yi += w;
}
}
// Log.e("pix", w + " " + h + " " + pix.length);
bitmap.setPixels(pix, 0, w, 0, 0, w, h);
return (bitmap);
}
F. Android 毛玻璃(高斯模糊)背景对话框
在 Activity 中调用
模糊工具
G. 华为手机什么都好,就是系统是一大硬伤啊啊
首先跟楼主说下 你既然说的是EMUI 3.1 那要对比的是Flyme 4.0和MIUI V7 所以我把你的描述改了下。 EMUI 3.1 先说EMUI 3.1 这是跟着华为P8全球发布的时候一起推出的系统。在3.0的基础上是安卓版本由4.4升级到了5.0 其次是增加不少功能。 1、毛玻璃背景,在EMUI的3.1出现 初次尝试沉浸式状态栏,希望可以坚持下去。 EMUI3.1的变成了沉浸式的毛玻璃背景,突出了白色的字体,EMUI3.1去掉了3.0版本的下拉按钮,而是改为了直接滑动屏幕选择开关,在编辑开关界面,每个开关按钮也增加了沉浸效果,界限也更加明显,但是EMUI做的UI确实需要下功夫,这些要跟MIUI学习下。 2、杂志锁屏内容增加,这点MIUI学过去了叫做锁屏画报,看来这个功能还是 杂志锁屏是EMUI的特色功能,在每次点亮屏幕的时候会出现不同风格的绝美高清壁纸,个人还是比较喜欢 看的顺眼的照片都是可以保存下来的;历经多次版本优化,EMUI 3.1杂志锁屏的功能更趋完善,其实可以做的更好 ,比如在锁屏的插件等。 3、多彩设置页面图标,其实这个我个人比较喜欢 但是这个是主观东西 有的人看喜欢IOS的设置页面,肯定比较喜欢这个。抛开模仿不模仿不说,其实很多小功能体验一个系统的人性化程度,也是用户粘性的基础,至少让人感觉你的系统还是有人在开发维护。 4、情景智能--算是一个尝试,其实华为很多设计都是偏向商务和年龄段偏大的用户,就问一句这些功能 那些学生族用得上吗?难道你们会告诉他什么时候上课? 5、单手屏幕功能、其他ROM一两年前功能,EMUI你总算来了,终于等到你,有生之年看到了还是点个赞吧,大屏模式的辅助功能,说实话在大学时候的VIVO xplay3S时候就是有这个功能。 6、多样化拍照模式,摸过了很多ROM 就发现EMUI的相机玩法 多玩几次后发现EMUI 3.1有美食模式、个性化滤镜、慢动作、除雾滤镜、延时摄影、魅我功能、流光快门等功能 把以前单反的长曝光 通过软件和传感器在手机上实现,算是一个玩法,其实我经常去华为荣耀6Plus吧看到很多超级夜景和长曝光的作品,还不错,拍照其实还是一门技术活,所以有人设备很好,拍的样张也是入不了眼, 7、智能识物--鸡肋功能,噱头。希望后期能改进下,不行就搞了。 8、信息归档,快捷梳理信息 对信息进行管理也是很头疼的事情,华为EMUI 3.1增加了通知信息归档设置,可将银行类信息、运营商信息及绝大部分国内通知信息进行归档设置。这点有些类似于微信公众号的折叠功能,将同一类型的通知短信折叠到一个统一入口,再也不怕手机短信箱乱乱的找不到想要的短信啦。不过即便是找不到,也可以用EMUI3.1短信搜索功能呢。 9、耗电管理更全面 电池是手机一大硬伤,手机的电池管家的省电都是阉割你的功能、饮鸩止渴,所以体验和续航二者不可兼得,所以我预测手机行业下一次的高潮点肯定就是良好的续航重点或者新的电池电芯材料出现。 总结: 1、实用基础功能都有,缺乏一个亮点去刺激用户的“G”点。让人对EMUI留下深刻印象、Flyme和MIUI的印象就是比较深刻 2、创新功能缺多,但乏吸引力、大多数出现了没几个版本被阉割掉了,这点MIUI做的比较多 3、EMUI定位人群明显偏向商务人士。 4、EMUI 3.1总体表现优秀,并无短板后期的,EMUI 4.0的全球化战略可能是API接口和开发者平台了。
H. 坚果手机怎么换壁纸
可以打开主题,锁屏设置里更换,也可以长按图片,选择设为壁纸,设为锁屏,确定即可。
I. mate8 emui5怎样替换字体
Emotion UI是华为基于Android进行开发的情感化用户界面。独创的Me Widget整合常用功能,一步到位;快速便捷的合一桌面,减少二级菜单;缤纷海量的主题,何止让你眼花缭乱。触手可及的智能指导,潇洒脱离小白状态。贴心的语音助手,即刻解放你的双手。随时随地,尽情愉悦体验。目前,已超过1亿全球用户。 EMUI3.1界面变化和以前的EMUI3.0版本相比,可谓是一样的主题,不一样的背景。EMUI3.0下拉通知栏白茫茫的底色不见了,EMUI3.1的变成了沉浸式的毛玻璃背景,从而突出了白色的字体,提升了视觉享受。同时,下拉开关也做的更加完美,EMUI3.1去掉了3.0版本的下拉按钮,而是改为了直接滑动屏幕选择开关,在编辑开关界面,每个开关按钮也增加了沉浸效果,界限也更加明显。
J. Android上如何做出毛玻璃模糊的效果
上图展示了一种很典型的视觉效果——文字的背景不再是固定的,而是将底层的相应区域模糊化,好似盖了一层毛玻璃。
其原理也很简单,分为三步走:
里面涉及到的技术点有两个:
ViewTreeObserver里面有一个监听器为OnPreDrawListener
当它执行时,布局文件经过了 measured 、 laid out 、 displayed ,即将被绘制到屏幕,此时调用它的 getDrawingCache() 方法可以获得其Bitmap。完整方法如下:
方案有两种:
两种方案都可以进行对Bitmap对象的模糊处理,但当模糊半径增大时,StackBlur能够保持较好的性能,且不受Renderscript半径25px的限制。
在GitHub项目有一个项目 blurring ,其实现了StackBlur算法的Java实现版FastBlur,并给出两种方案效率对比demo。经过测试,
看起来,Renderscript的性能更好,应该是Android上对Renderscript做了优化。尽管如此,考虑到Android中渲染一帧的时间应该不超过16ms(60fps),这样的性能并不友好。 blurring 作者想出了另外一种思路:
这时候,效率提升非常明显:
生成的模糊图片当然有所不同,但是都是模糊背景,所以对用户而言没有太大差别。
好了,至此Android上制作毛玻璃背景模糊效果的技术都确定了。
我在 blurring 基础上做了封装,接口如下:
相对应类有两个: