1

okey,我已阅读了很多关于此的章节,但我仍然不知道该项目最适合做什么。多屏幕支持大屏幕和小屏幕

这里是我有一个项目[大一:) :)的情况,在这个项目中,一切都是为分辨率为480 x 800像素的屏幕完成的。

这是新的要求:)。他们要求支持分辨率为240 x 320像素的设备(这种布局分辨率很小)。到目前为止这么好:),但问题是240x320的分辨率,它太小,以适应与布局正常缩放比例的组件。我需要为小屏幕手机设计全新的设计。

这意味着如果我现在在layout-small/main.xml中在layout/main.xml中有文本文件R.id.textview1我不会有R.id.textview1但是我会有两个现在的组件让说R.id.button1和R.id.textviewsmall ...我的观点是这样的代码将无法正常工作原因在布局/ main.xml文本view1存在,但在layout-small/main.xml不,并且它会抛出异常

((TextView)findViewbyId(R.id.textview1)).setText("something"); 
当然

这是我已解释是非常愚蠢的scenarion,我有事真的很复杂,但我希望你明白我的意思是我想达到的。

现在的问题是实施碎片太迟了,因为这将会是很多工作应该完成的。所以我需要一些指导我应该怎么做呢?

任何意见或一些设计准则将是很大的帮助,谢谢...

+0

你读过http://developer.android.com/guide/practices/screens_support.html – himanshu 2012-01-31 04:36:25

回答

2

是的,你可以这样做。 在许多应用程序中,我们可以根据需要手动设置此类布局。

为此,您首先必须以编程方式获取屏幕高度和宽度。 现在一次,如果你明白了。 你可以在Java文件中创建条件,如果屏幕高度和宽度等等。然后做这个。

希望你有我的观点。

或者

如果你想通过XML设置布局遂作出上述不同的布局XML作为象下面这样:

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_icon.png  // bitmap for medium density 
res/drawable-hdpi/my_icon.png  // bitmap for high density 
res/drawable-xhdpi/my_icon.png  // bitmap for extra high density 

而且这样做,你可以手动设置的高度和宽度后具体的布局。希望这将成为您问题的解决方案。

如果它不是你的解决方案,那么让我通知。 。 。

享受。 :)

+0

好,我必须同意你的看法,这是解决问题的方法之一。但我的问题是,还有其他选择吗? ,tnx – Lukap 2012-01-30 12:58:31

+0

@Lukap:查看更新的答案。 – 2012-01-31 04:26:20

+0

我看到你在多屏幕化脓中解释了同样的事情,这部分对我来说很清楚。但请仔细阅读粗体文字,因为这是我不知道如何处理的部分 – Lukap 2012-01-31 08:20:51

1

一种可能的方式是创建小屏幕的布局,并指定重量属性,然后它会在大屏幕上调整自己。如果您也使用不同密度的图像,那么它在大多数情况下可能适用于您。 这里是你如何在布局中指定权重。

<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
> 
<TextView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="small" 
android:layout_weight="0.2" 
android:background="#123" /> 
<TextView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_weight="0.8" 
android:text="huge" 
android:background="#456" 
/> 
</LinearLayout>