【发布时间】:2015-09-09 13:45:23
【问题描述】:
我设计了屏幕,我使用 JPEG 图像作为布局背景。完整的 UI 屏幕在 Android 8(GingerBread) 到 Android 19(Kitkat) 中正确可见。布局背景在 Android 20+ 中不可见(Lollipop)
我正在使用应用兼容性库。
请看下面的截图
模拟器 Android 8
设备奇巧
设备棒棒糖
已经尝试过的解决方案
- 创建另一个文件夹 mipmap 并将相同的图像复制到那里并尝试使用
@mipmap\image_background访问它。 没有任何改变。
布局 XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/mainBody"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- android:background="@drawable/login_bg" -->
<View
android:id="@+id/vwStruts"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true" />
<TableLayout
android:id="@+id/tblLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_margin="5dp"
android:padding="5dp" >
<TableRow
android:id="@+id/tbrUserId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center" >
<EditText
android:id="@+id/edtUserId"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:hint="@string/hintEmpId" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tbrPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
>
<EditText
android:id="@+id/edtPassword"
style="@style/EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:ems="10"
android:hint="@string/hintPassword"
android:inputType="textPassword" />
</TableRow>
<TableRow
android:id="@+id/tbrLoginAndClear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<Button
android:id="@+id/btnLogin"
style="@style/LoginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="40dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="@string/login" />
</TableRow>
</TableLayout>
<ImageView
android:id="@+id/imgLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/tblLogin"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/tblLoginMargin"
android:src="@raw/footer_logo" />
</RelativeLayout>
styles.xml,values-v21 没有文件夹
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>
登录按钮可绘制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- On Pressed state -->
<item android:state_pressed="true" >
<shape>
<solid android:color="@color/btn_login_on_press" />
</shape>
</item>
<!-- enabled true Not pressed, normal state -->
<item android:state_pressed="false" android:state_enabled="true">
<shape>
<solid android:color="@color/btn_login_normal" />
</shape>
</item>
</selector>
编辑 1:添加 Styles.xml 和按钮可绘制对象 编辑 2:提及支持库的使用
【问题讨论】:
-
从 values 文件夹和其他 values-v21 中发布您的 theme.xml 或 styles.xml。
-
你上面的代码是完美的,我在 android L 设备和 M 模拟器中检查过相同的东西,可能你遇到了风格相关的问题。请分享您用于按钮的 style.xml 以及主要样式
-
@Shishram 立即查看。我添加了两种样式。 xml
-
@AndroidWeblineindia 也添加了按钮可绘制对象
-
@AkhilJain,尝试添加样式。对于 v21 以及测试。如果您愿意,我可以发布一个答案,其中将包含 21 个 API 级别以下和以上的样式。这样做可能会解决您的问题。
标签: android android-layout android-5.0-lollipop