gpt4 book ai didi

android - 渐变背景在某些设备上不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:07 25 4
gpt4 key购买 nike

我正在为图像内阴影使用渐变可绘制对象,它在某些设备上工作正常(检查模拟器)但在某些设备上不起作用。起初我认为这将取决于设备的 api 级别,但今天我在具有 api 级别“16”(即果冻 bean )的平板电脑上检查同样的事情,它也不起作用。

渐变代码(所有四个边的内阴影):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
<shape android:shape="rectangle" >
</shape>
</item>
<item
android:bottom="114dip"
android:top="0dip">
<shape android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="#00000000"
android:startColor="#40000000" />
</shape>
</item>
<item
android:bottom="0dip"
android:top="114dip">
<shape android:shape="rectangle" >
<gradient
android:angle="90"
android:endColor="#00000000"
android:startColor="#40000000" />
</shape>
</item>
<item
android:left="0dip"
android:right="114dip">
<shape android:shape="rectangle" >
<gradient
android:angle="360"
android:endColor="#00000000"
android:startColor="#40000000" />
</shape>
</item>
<item
android:left="114dip"
android:right="0dip">
<shape android:shape="rectangle" >
<gradient
android:angle="180"
android:endColor="#00000000"
android:startColor="#40000000" />
</shape>
</item>

</layer-list>

我的布局代码:

 <FrameLayout
android:id="@+id/about"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@color/light_green" >

<ImageView
android:id="@+id/home_icon_placeholder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/home_icon_placeholder" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawablePadding="5dp"
android:drawableTop="@drawable/about_icon"
android:gravity="center"
android:text="@string/about_champions_club_btn_txt"
android:textColor="@android:color/white"
android:textSize="12sp"
android:textStyle="bold" />
</FrameLayout>

在我的代码中将渐变设置为:

int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
placeHolderImageViewAbout.setBackgroundColor(getResources().getColor(R.color.transparent));
} else {
//shadow background is above mention gradient
placeHolderImageViewAbout.setBackgroundResource(R.drawable.shadow_background);
}

最佳答案

从您的 shadow_background.xml 中删除此 block (第一项 block )。

<item>
<shape android:shape="rectangle" >
</shape>
</item>

为了检查 shadow_background,我做了一个这样的布局,它似乎可以工作(即使在 xml 编辑器中的 API10 上)。
(如果离开第一个项目 block ,LinearLayout 将填充黑色。)

FrameLayout
(Background = @color/light_green)
LinearLayout
(Background = @drawable/shadow_background)

关于android - 渐变背景在某些设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24690204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com