2014-09-06 76 views
0

我正在开发一个Android应用程序。此应用必须在所有Android设备上均可用。但是,我怎样才能做出响应式设计?例如,我想设置一个背景图像,但图像将调整到不同的分辨率,这是一个混乱。在Android应用程序中的响应式设计

搜索在谷歌,我发现这个解决方案:

Configuration config = getResources().getConfiguration(); 
if(config.smallestScreenWidthDp >= 600){ 
    setContentView(R.layout.activity_main_tablet); 
}else{ 
     setContentView(R.layout.activity_main); 
} 

正是这种真正为所有的设备的Android应用程序的唯一途径?我必须为每个设备创建一个活动和不同的图像?有超过十个不同的决议。

感谢

回答

2

如果你想获得每个设备上响应式布局的结果,好的办法是使用的RelativeLayout,并根据孩子的观点类似按钮,你应该使用“match_patent”或旧的SDK版本“film_patent”属性。

链接在这里:

http://developer.android.com/guide/topics/ui/layout/relative.html

什么图片?

Android开发人员指示说有四个可绘制的资源文件夹(mdpi,hdpi,xhdpi和xxhdpi),您应该将较早准备的图像放在合适的尺寸和密度下。

链接在这里:

http://developer.android.com/guide/practices/screens_support.html

我申请一个另一种方式。在我的应用程序中,有相对布局,每个子视图都有match_parent属性,比如按钮。 参考图像,我们准备了240dpi的高清分辨率图像,每款设备上的应用看起来不错(三星趋势精简版,Nexus 5)。

所以说实话,如果你打算开发自己的手持设备的最佳方法是准备两个图像(HD和全高清)的应用程序,但这只是我的意见;)

+0

谢谢,我会做你说什么,但是背景图片呢?背景会自动调整大小,因此取决于背景图像会变形的设备分辨率。我该如何解决这个问题? – 2014-09-06 12:51:02

+0

这是真的,背景图片也在不同的设备上调整大小。我对背景图像也做了同样的处理。在小分辨率设备和高清我准备一个高清图像和全高清另一个。但我也在每台设备上测试了一个HD图像(240dpi),效果非常好。这取决于你对应用程序设计的关注程度(对于准备好几个图像的游戏,但对于普通应用程序,您可以尝试我的解决方案,它对我有用。) – 2014-09-06 14:37:43