簡體   English   中英

縮放ImageButton以適應各種屏幕尺寸

[英]Scaling ImageButtons for various screen sizes

對於我的應用程序 (運行Android 2.1及更高版本),我想知道如何按dpi縮放各種屏幕尺寸(在這種情況下為虛擬模擬器)的按鈕,因為縮放后的背景圖像似乎“未像素化”非常好...我用lpdi和xxhdpi屏幕相應地縮放了按鈕(如下所示的“ GOT IT”),並得到以下結果:

對於Nexus 5虛擬仿真器(xxhdpi),按鈕應該為150X34像素,似乎可以導航到ldpi資源導向器:

在此處輸入圖片說明

QVGA(ldpi)的放大圖,按鈕為57X13像素:

在此處輸入圖片說明

所有這些,我是否需要縮小布局,而不是考慮在可繪制文件夾(xhdpi,hdpi,mdpi和ldpi)中實現縮放按鈕圖像,在可繪制資源文件中調用它,然后將可繪制資源文件設置為ImageButton的背景圖像? 這是我的按鈕順便說一句的XML:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:id="@+id/exitBtn"
    android:layout_marginBottom="57dp"
    android:src="@drawable/popup_btn"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:scaleType="centerCrop"
    android:background="@android:color/transparent" />

PS縮放繪圖文件夾xhdpi還是xxhdpi屏幕的默認位置嗎? xxxhdpi及以上如何?

首先,您必須更改Button才能占據整個屏幕:

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/exitBtn"
android:layout_marginBottom="52dp" <-- You may keep the margin if you like
android:background="@drawable/popup_btn"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />

接下來,您將必須包含支持不同密度的不同資源:mdpi,xhpdi,xxhdpi等。 請確保分辨率適用於每個分辨率,並避免使用同一張圖像,太大的文件將占用內存和處理能力,分辨率太小的文件將顯得像素化。

編輯:有關支持不同設備和屏幕密度的更多信息: http : //developer.android.com/guide/practices/screens_support.html

為了使您的布局與不同的屏幕尺寸兼容,您應該在res /目錄下使用dimens來實現布局兼容性,例如,您可以為不同的屏幕尺寸定義不同的dimens,另請參見提供資源支持多屏幕

通過實例化創建顯示指標。現在從顯示指標中檢索整個根視圖的寬度和高度

完成后,在活動的Oncreate中實現globallayoutchangelistener,並將縮放代碼放入偵聽器中。

想法是先計算設備密度,然后根據globallayoutchangelistener中的密度縮放按鈕

讓我知道它是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM