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>