2013年12月13日 星期五

[Android]使用ScorllView解決裝置解析度差異過大問題

解決裝置解析度差異過大問題

Android裝置相容性問題,最常遇到的就是不同的螢幕解析度,因此官方文件建議Layout上使用的距離單位盡量使用dp,能部分解決多解析度上的問題,但裝置的解析度差異過大時,還是會出現操作介面上的缺陷,雖然在這種情況下要兼顧介面美觀會有困難,但至少要維持操作上不能有缺陷,評估這樣的原則,因此選擇使用ScrollView來解決解析度相容性的問題,雖然不能保有一致美觀,但至少不會有功能上的缺陷。


以Login畫面為例,處理解析度上的問題。
如下圖為高解析度裝置顯示的畫面,介面完整顯示,功能操作上正常。





同樣的畫面在解析度極端小的裝置上卻發生這樣下圖的情況,Login的按鈕無法使用,因為排 版太寬、元件太大,造成這樣的結果。


為了低解析度裝置重新設計Layout,很可能會造成下圖的結果,低解析度顯示正常,高解度 雖然也可正常操作,但整個畫面卻相當不協調。



若解析度的差別不會造成,Layout的差異過大,這個方法是可行的,若要解決解析度差異過大的案例,可以使用ScrollView 來解決畫面的問題,將Login所需要的元件,放在ScrollView裡,高解析度的裝置,畫面可以維持美觀,低解析度的裝置可以維持功能可正常使用。
<ScrollView
           android:id="@+id/scrollView1"
           android:layout_width="match_parent"
           android:layout_height="wrap_content" >


           <LinearLayout
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:gravity="center"
               android:orientation="vertical" >
           
           .... 顯示內容.....


           </LinearLayout>


</ScrollView>





若發生資料輸入的頁面中,因為操作虛擬鍵盤,而造成畫面擠壓的問題,請參考以下連結:

操作鍵盤,造成畫面擠壓問題

沒有留言:

張貼留言