我在android中遇到了属性背景问题。我想设计一个在mdpi和hdpi屏幕密度上运行查找的布局。我有2个背景图片如下:
我使用draw9patch来定义内容填充,如下所示:
![enter image description here][3]
当我在布局的背景设置这些图像时,它们可以在mdpi屏幕上找到但在hdpi上没有找到。 hdpi的背景比它设计的更长。以下是截图:
在mdpi屏幕上没问题:
在hdpi屏幕上显示更长(拉伸):
以下是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ui_win_background"
android:orientation="vertical" >
<TextView
android:id="@+id/activity_win_textview_congratulationText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/activity_horizontal_marginXExtraWide"
android:gravity="center"
android:text="CONGRATULATION!\nYOU WON!!!"
android:textColor="#FFF"
android:textSize="@dimen/textSize_XLarge" />
<TextView
android:id="@+id/activity_win_textview_percent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/activity_horizontal_marginExtraWide"
android:gravity="center"
android:text="50%"
android:textColor="#BD1142"
android:textSize="72sp"
android:textStyle="bold" />
<TextView
android:id="@+id/activity_win_textview_prizeName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="Combo Starbucks"
android:textColor="@color/black"
android:textSize="@dimen/textSize_XLarge"
android:textStyle="bold" />
<TextView
android:id="@+id/activity_win_textview_prizeCode"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_margin="@dimen/activity_vertical_margin"
android:background="@drawable/statelist_textview_white_roundborder"
android:gravity="center"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="#fsdjflsejp34230sfmwr3"
android:textSize="@dimen/textSize_large"
android:textStyle="italic" />
<TextView
android:id="@+id/activity_win_textview_prizeName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/activity_vertical_marginWide"
android:gravity="center"
android:text="This screen closes in"
android:textColor="@color/black"
android:textSize="@dimen/textSize_large" />
<TextView
android:id="@+id/activity_win_textview_countDown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:gravity="center"
android:text="00:20:40"
android:textColor="#BD1142"
android:textSize="@dimen/textSize_large"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
请看一下并帮我解决此问题。
感谢。
答案 0 :(得分:1)
不要使用背景。 使用ImageView(使用RelativeLayout)并根据需要设置图像视图的ScaleType属性。 您可以设置一种缩放类型,以保持图像的纵横比。 此外,请注意,如果您不希望图像缩放,9patch是无用的。 9patch的全部目的是让您控制系统如何缩放图像(主要用于ui控件的按钮和背景)。
你的布局(删除了一些元素):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scale_type="centerInside" //Do whatever scale type you like
android:src="background image goes here"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/activity_win_textview_congratulationText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/activity_horizontal_marginXExtraWide"
android:gravity="center"
android:text="CONGRATULATION!\nYOU WON!!!"
android:textColor="#FFF"
android:textSize="@dimen/textSize_XLarge" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>