在真实设备和模拟器Android中不同的图片显示,我不明白是什么原因
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/music"
android:contentDescription="@string/app_name"
android:layout_weight="0.5"
android:cropToPadding="false" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.9">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/button" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:id="@+id/button2" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:id="@+id/button3" />
</LinearLayout>
以下是它在仿真器和真实设备上的外观
我附上代码布局。我会很高兴得到任何帮助
答案 0 :(得分:1)
首先,您的图片height
和width
设置为wrap_content
,
试试这个,但你需要一个高分辨率的图片,请参阅 Harsh Dattani 关于图片尺寸的答案,你的问题应该解决
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<ImageView
android:layout_width="fill_parent"<!--changed this-->
android:layout_height="fill_parent"<!--changed this-->
android:id="@+id/imageView"
android:src="@drawable/music"
android:scaleType="centerCrop"<!--added this line-->
android:contentDescription="@string/app_name"
android:layout_weight="0.5"
android:cropToPadding="false"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.9">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/button" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:id="@+id/button2" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:id="@+id/button3" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
保持密度独立性很重要,因为没有它,a UI元素(例如按钮)在物理上看起来更大 低密度屏幕,在高密度屏幕上更小。这样 密度相关的大小更改可能会导致应用程序出现问题 布局和可用性。
正如Supporting Multiple Screens文档中完美记录的那样,您需要支持多种屏幕尺寸的设备。将有单独的Drawable
文件夹定位不同的密度,将您的图像以特定的密度放在相应的文件夹中。
一组六个广义密度:
ldpi(低)~120dpi
mdpi(中)~160dpi
hdpi(high)~240dpi
xhdpi(超高)~320dpi
xxhdpi(extra-extra-high)~480dpi
xxxhdpi(extra-extra-extra-high)~640dpi