我使用下面的XML文件进行Android活动。它显示在Nexus 7上很好,因为附带的图像显示,但在像Galaxy Nexus这样的小屏幕上,它并不是那么好。有人可以给我一步一步的答案,如何解决这个问题非常烦人。我知道使用XDHPI,HDPI ....资源文件夹支持多种屏幕尺寸。如果我在文件夹中放入正确的图像尺寸,图像是否会自行修正,我应该使用哪些尺寸来调整图像大小?
这里展示的是我所谈论的一个例子:
Example http://oi57.tinypic.com/mhcd8n.jpg
目前,所有文件均采用125 x 125尺寸的可绘制HDPI,非常感谢帮助。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/textbody"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/Appts"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="267dp"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/stock_appointment_reminder"
android:padding="10dp"
android:text="APPTS"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Sputum"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_below="@+id/Appts"
android:layout_toLeftOf="@+id/Data"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/micro"
android:padding="10dp"
android:text="SPUTUM"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Blood_Sugars"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/Sputum"
android:layout_toRightOf="@+id/Sputum"
android:background="?android:attr/selectableItemBackground"
android:drawablePadding="2dp"
android:drawableTop="@drawable/magnifying_glass"
android:padding="10dp"
android:text="FEV1%"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Meds"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_alignBaseline="@+id/Blood_Sugars"
android:layout_alignBottom="@+id/Blood_Sugars"
android:layout_alignParentLeft="true"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/therapist"
android:fadingEdge="horizontal"
android:padding="10dp"
android:text="MEDICINE"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Settings"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_alignLeft="@+id/Excercise"
android:layout_alignParentRight="true"
android:layout_below="@+id/Excercise"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/application_x_desktop"
android:padding="10dp"
android:text="SETTINGS"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Events"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_above="@+id/Meds"
android:layout_toRightOf="@+id/Appts"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/events"
android:padding="10dp"
android:text="EVENTS"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Data"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_above="@+id/Settings"
android:layout_alignParentRight="true"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/hitchhikeguidetogalaxy3_info"
android:padding="10dp"
android:text="MY DATA"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Contacts"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_above="@+id/Meds"
android:layout_alignParentRight="true"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/contacts_1"
android:padding="10dp"
android:text="CONTACTS"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Excercise"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Meds"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/symptom"
android:padding="10dp"
android:text="SYMPTOMS"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/Meals_Snacks"
android:layout_width="201dp"
android:layout_height="123dp"
android:layout_above="@+id/Settings"
android:layout_alignLeft="@+id/Events"
android:background="?android:attr/selectableItemBackground"
android:drawableTop="@drawable/apple"
android:padding="10dp"
android:text="NUTRITION"
android:textColor="@android:color/primary_text_dark"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:src="@drawable/icon" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:text="myCF Home"
android:fontFamily="sans-serif-thin"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/white"
android:textSize="50sp"
android:textStyle="bold" />
</RelativeLayout>
答案 0 :(得分:0)
在android中你有hdpi,mdpi,xdpi等选项。
文件夹,您必须根据设备分辨率创建不同的图像,并在确认设备分辨率和密度类别后将图像放在那里。
更多参考为什么它会发生,你可以在这里看到
这里我解释一些图表可能对你有所帮助。
Low density Small screens QVGA 240x320 (120dpi):
layout-small-ldpi (240x320)
layout-small-land-ldpi (320x240)
Low density Normal screens WVGA400 240x400 (x432) (120dpi):
layout-ldpi (240 x 400 )
layout-land-ldpi (400 x 240 )
Medium density Normal screens HVGA 320x480 (160dpi):
layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )
Medium density Large screens HVGA 320x480 (160dpi):
layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)
Galaxy Tab ( 240 dpi ):
layout-large (600 x 1024)
layout-large-land (1024 x 600)
High density Normal screens WVGA800 480x800 (x854) (240 dpi):
layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)
Xoom (medium density large but 1280x800 res) (160 dpi):
layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)
答案 1 :(得分:0)
如果您想支持多个屏幕或想要让您的应用与所有屏幕尺寸兼容,那么首先要记住的是,永远不要使用硬编码的宽度和高度值。
避免这种情况:
android:layout_width="201dp"
android:layout_height="123dp"
使用:强>
android:layout_width="wrap_content" or "match_parent"
android:layout_height="wrap_content" or "match_parent"
有关详细信息,请参阅此处:阅读this
为了支持所有屏幕尺寸,您必须阅读support multiple screen size
Android为不同的屏幕尺寸和不同的位图绘图提供了不同的布局设计,适用于小型,中型,高密度和超高密度屏幕。
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res/drawable-mdpi/my_image.png // bitmap for medium density
res/drawable-hdpi/my_image.png // bitmap for high density
res/drawable-xhdpi/my_image.png // bitmap for extra high density
在android清单文件中使用此功能以支持多个屏幕:
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />