android– 对于低于23的API,图层列表中的Shape drawable呈现不正确

android– 对于低于23的API,图层列表中的Shape drawable呈现不正确,第1张

概述昨天,我已切换到AndroidStudio2.1.3版.今天,我重新打开了我的一个项目,并尝试添加一些图层列表drawable用于ImageView.例如这一个:<layer-listxmlns:android="http://schemas.android.com/apkes/android"><itemandroid:width="80px"android:height="80px"

昨天,我已切换到Android Studio 2.1.3版.今天,我重新打开了我的一个项目,并尝试添加一些图层列表drawable用于ImageVIEw.例如这一个:

<@R_219_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:wIDth="80px" androID:height="80px"        androID:top="0px" androID:left="0px"         androID:right="0px" androID:bottom="0px">        <shape androID:shape="rectangle">            <solID androID:color="@color/deep_orange"/>        </shape>    </item>    <item androID:wIDth="60px" androID:height="60px"        androID:top="10px" androID:left="10px"         androID:right="10px" androID:bottom="10px">        <shape androID:shape="oval">            <solID androID:color="@color/light_yellow"/>        </shape>    </item></@R_219_3419@>

这是我在升级AndroID Studio版本之前所获得的,如果我选择23作为“在IDE中渲染布局时使用的AndroID版本”,这就是我现在在预览中获得的内容.

但是,如果我选择23以下的任何版本,我只会得到正方形:

不幸的是,在模拟器(Lollipop 22)或设备(Jellybean 18)上运行应用程序时,我也得到了正方形.

以防这有用:

> compileSdkVersion 23
> buildToolsversion“23.0.3”
> minSdkVersion 11
> targetSdkVersion 23
> buildType调试没有任何内容
> dependencIEs:compile’c​​om.androID.support:appcompat-v7:23.0.1′
>活动扩展了AppCompatActivity

我认为这个问题与上层的顶部,左侧,右侧和底部的使用有某种关系.因为如果我只是在一个正方形的顶部放置一个圆圈,预览以及“真实的东西”将按预期的方式对所有API级别起作用.

编辑我也开始了一个全新的项目,使用相同的代码/ xml和以下(自动创建)build.gradle:

> compileSdkVersion 24
> buildToolsversion“24.0.2”
> minSdkVersion 15
> targetSdkVersion 24
> buildType调试没有任何内容
> dependencIEs:compile’c​​om.androID.support:appcompat-v7:24.2.0′
>活动扩展了AppCompatActivity

这里的行为相同:如果我使用top,left,right和bottom值!= 0,则不会为API级别< = 22呈现上层.所以我的问题是:如何使用AndroID Studio 2.1.3为所有API级别创建“with insets”形状drawable?

解决方法:

首先,我要感谢@pskink帮助我分析问题:)

问题中的xml适用于API级别23,因为

it is possible to set wIDth and height right within the “item” tag

像@android developer年的@android developer州

它不适用于较低版本,因为需要使用size标签为ShapeDrawable设置wIDth和height属性.

我想AndroID需要大小来计算如何缩放drawable( – >宽高比!),同时考虑插图(顶部,左侧,右侧,底部).

正如有时格式错误(对于特定API级别)xml的情况一样,AndroID无声地失败并且根本没有绘制形状.

所以解决方案是:

<@R_219_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:wIDth="80px" androID:height="80px"        androID:top="0px" androID:left="0px"         androID:right="0px" androID:bottom="0px">        <shape androID:shape="rectangle">            <solID androID:color="@color/deep_orange"/>        </shape>    </item>    <item androID:wIDth="60px" androID:height="60px"        androID:top="10px" androID:left="10px"         androID:right="10px" androID:bottom="10px">        <shape androID:shape="oval">            <solID androID:color="@color/light_yellow"/>            <size androID:height="60px" androID:wIDth="60px"/>        </shape>    </item></@R_219_3419@>
总结

以上是内存溢出为你收集整理的android – 对于低于23的API,图层列表中的Shape drawable呈现不正确全部内容,希望文章能够帮你解决android – 对于低于23的API,图层列表中的Shape drawable呈现不正确所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存