Jas*_*son 8 android bit-depth wear-os
在我运行Android 5.0.1的LG G Watch上,我一直在努力让渐变显得平滑.
在你标记为重复之前,我已经尝试了几个帖子的每个答案(比如为什么android在显示png文件时会丢失图像质量?,是否可以抖动渐变可绘制?,android:dither ="true"不会抖动,有什么不对?,彩色条带Android解决方案,色带,并与梯度文物尽管使用RGBA_8888无处不在,颜色只能在Android 4.0以上版本的条带,在Android的可怕的背景图像质量),但似乎都不适用.
1)从最新的Android SDK加载示例'Wearable:Watch View Stub'项目
2)将rect_background.xmldrawable 更改为:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/rect_corner_radius"/>
<gradient android:startColor="@color/light_grey"
android:endColor="@color/white"
android:angle="90"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
3)这是仿真器上的样子

4)这是我从设备进行屏幕捕获时的样子:

5)但是当我亲眼看到它时,有一种可怕的条纹:(在现实生活中看起来更糟糕;图像不公正)

以下是亲眼看到的模拟图像(128种颜色):

我也尝试过:
使用100质量的jpeg.
在创建布局之前和之后,在Activity中手动将PixelFormat设置为RGBA_8888
所有这些都以同样的方式出现.
还有其他人看到这个问题吗?根据这个网站,LG G Watch的颜色深度为24位,每通道应为8位.设备上的正常图像显示正确 - 没有明显的条带.
我能够在 LG G Watch 上生成平滑的花园,如下所示:
步骤1:
手动将像素格式设置为RGB_565
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
getWindow().setFormat(PixelFormat.RGB_565);
}
Run Code Online (Sandbox Code Playgroud)
第2步:
您必须在 Wear AndroidManifest.xml 中停用硬件加速。将此属性添加到应用程序标记:
android:hardwareAccelerated="false"
Run Code Online (Sandbox Code Playgroud)
步骤3:
定义一个新方法来绘制背景:
public static Bitmap drawableToBitmap (Drawable drawable, int height, int width) {
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable)drawable).getBitmap();
}
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}
Run Code Online (Sandbox Code Playgroud)
步骤4:
将其应用到您的布局中:
Bitmap bpBackground = drawableToBitmap(getResources().getDrawable(R.drawable.rect_background), 280, 280);
BitmapDrawable bdBackgorund = new BitmapDrawable(getResources(), bpBackground);
myLayout.setBackground(bdBackgorund);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法让它在 WatchViewStub 内部工作,但我认为这可能已经帮助您解决问题。
要获得不错的结果,步骤 1 和 2 是必要的,步骤 3 和 4 再次提高质量。
您可以在这里找到整个解决方案:https ://github.com/lukeisontheroad/WatchViewStubStackOverflowSolution
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |