2016-03-28 74 views
5

我使用两种不同的方法在Android设备实现响应式设计响应设计

方法1.我在不同的文件夹中使用不同的dimens.xml

values-hdpi 
values-ldpi 
values-mdpi 
values-xhdpi 
values-xxhdpi 

所有的Android设备

方法2.我复制了我所有的布局到

layout 
layout-large 
layout-small 
layout-xlarge 

文件夹,并给予不同的高度,宽度和其他

当我用第一种方法,我没有得到正确的响应式设计,当我使用第二种方法,我得到正确的设计,但它增加了应用程序尺寸。

那么,请告诉我最好的工艺,实现100%的其他响应式设计比我的两个方法

回答

0

您可以使用谷歌图书馆PercentRelativeLayout与这个库,你可以设置宽度高度保证金你的views百分比这很好,因为在所有屏幕上它们看起来都一样,当然也不难编码它。这里例如:

<android.support.percent.PercentRelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    <ImageView 
     app:layout_widthPercent="50%" 
     app:layout_heightPercent="50%" 
     app:layout_marginTopPercent="25%" 
     app:layout_marginLeftPercent="25%"/> 
</android.support.percent.PercentRelativeLayout> 

您必须在build.gradle

dependencies { 
    compile 'com.android.support:percent:23.2.0' 
} 

正式文件由谷歌加入这一行https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html

希望这有助于为你的情况!

+0

嗨,我使用这个项目的日食。如果你不介意,你可以告诉我的过程日食 – Bahu

+0

嗯这是戈纳对我来说很难因为我没有导入日食:/ –

+0

Ho k :-(,我会检查 – Bahu

2

我通常会选择values,values-large,...文件夹,并将dimens.xml文件放在那里,其中我指定了每个屏幕大小类别的大小。 values是“后备”,如果我没有为特定大小类别指定任何值,它将包含默认值。 在布局我用这样的:

android:width="@dimen/width_for_this_view" 

定义在values/dimens.xml

<dimen name="width_for_this_view">30dp</dimen> 

您可以定义不同的values(大,中,小,..)的文件夹不同的大小。

+0

嗨,我以前使用的值大,值正常,值小,但我没有得到所有设备的正确设计。我认为你正在使用超过这三个文件夹(大,正常,小)你能告诉我其他文件夹名称 – Bahu

+0

我使用'正常,大,xlarge'为主要类别。我还使用“land”进行横向模式,并且您还可以为“宽”设备准备“长”。你可以在这里找到关于限定词的更多细节:http://developer.android.com/guide/practices/screens_support.html – GaborNovak