android – LG G手表不显示全彩色深度的32位图像或渐变

我一直在努力让运行 Android 5.0.1的LG G Watch上的渐变显得平滑.

在你标记为重复之前,我已尝试过几个帖子的每个答案(如Why android lose image quality when displaying a png file?,Is it possible to dither a gradient drawable?,android:dither=”true” does not dither,what’s wrong?,Color Banding Android Solution,Color banding and artifacts with gradients despite using RGBA_8888 everywhere,Color banding only on Android 4.0+,Awful background image quality in Android),但似乎都没有适用.

以下是我创建渐变的步骤

1)从最新的Android SDK加载示例’Wearable:Watch View Stub’项目

2)将rect_background.xml drawable更改为:

<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>

3)这是模拟器上的样子

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

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

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

我也尝试过:

>使用png位图(24位)
>使用带有1个透明像素(32位)的png位图
>使用带有所有半透明像素(32位)的png位图
>使用比特深度减少的png位图(256色)
>使用100质量的jpeg.
>在创建布局之前和之后,在Activity中手动将PixelFormat设置为RGBA_8888
>打开活动中的抖动
>使用自定义位图加载器从代码加载位图(设置像素格式,抖动等,请参阅Awful background image quality in Android)
>关闭ImageView的任何缩放比例
>将图像放在drawable,drawable-hdpi和raw文件夹中
>解压缩APK并验证图像是否已解压缩.

所有这些都以同样的方式出现.

如何让它在设备上正确显示

还有其他人看到这个问题吗?根据this site,LG G Watch具有颜色深度或24位,每通道应为8位.设备上的正常图像显示正确 – 没有明显的条带.

解决方法

我能够在我的LG G手表上产生一个平滑的gardient,如下所示:

步骤1:

手动将像素格式设置为RGB_565

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    getwindow().setFormat(PixelFormat.RGB_565);
}

第2步:

您必须在Wear AndroidManifest.xml中停用硬件加速.将此属性添加到应用程序标记

android:hardwareAccelerated="false"

第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,canvas.getWidth(),canvas.getHeight());
    drawable.draw(canvas);

    return bitmap;
}

第4步:

将其应用于您的布局:

Bitmap bpBackground = drawabletoBitmap(getResources().getDrawable(R.drawable.rect_background),280,280);
BitmapDrawable bdBackgorund = new BitmapDrawable(getResources(),bpBackground);
myLayout.setBackground(bdBackgorund);

不幸的是我无法让它在WatchViewStub中运行,但我认为这可能已经帮助您解决问题.

第1步& 2是获得体面结果所必需的,步骤3& 4再次提高质量.

你可以在这里找到整个解决方案:https://github.com/lukeisontheroad/WatchViewStubStackOverflowSolution

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android岛屿数量算...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Andro...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android数据压缩的方法是什么”文章能帮助大家解决疑惑...
这篇“Android怎么使用Intent传大数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅...
本文小编为大家详细介绍“Android事件冲突怎么解决悬浮窗拖拽问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android事件冲突怎么解决悬浮窗拖拽问题”文...
这篇文章主要介绍了Android拼接如何实现动态对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android拼接如何实现动态对象文...
今天小编给大家分享一下Android全面屏适配怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下...
本篇内容介绍了“Android怎么开发Input系统触摸事件分发”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何...
今天小编给大家分享一下AndroidRoom怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下...
本文小编为大家详细介绍“AndroidRoom使用方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“AndroidRoom使用方法有哪些”文章能帮助大家...
这篇文章主要介绍“Android中的OpenGL怎么配置使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android中的Open...
这篇文章主要介绍了Android如何自定义自动识别涂鸦工具类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android如何自定义自动...
今天小编给大家分享一下Android如何自定义有限制区域的图例角度自识别涂鸦工具类的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以...
今天小编给大家分享一下ReactNative错误采集原理在Android中如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章...
这篇文章主要讲解了“Android崩溃日志收集和保存代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“A...
这篇“Android面向单Activity开发实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大...
本篇内容介绍了“Android应用启动白屏处理的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何...