2016-07-25 59 views
1

我有兩個圖像按鈕,尺寸爲256x256 dp和scaleType="centerCrop"。 當我在AS中看到預覽或當我在nexus 5上啓動應用程序時,圖像模糊。這些圖像是各個文件夾的正確尺寸,最高爲xxxhdpi(192x192)。在xxhdpi屏幕上使用的最低dpi可繪製

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@android:color/black"> 

    <ImageButton 
     android:layout_marginTop="48dp" 
     android:layout_width="256dp" 
     android:layout_height="256dp" 
     android:id="@+id/button" 
     android:layout_gravity="center_horizontal" 
     android:src="@mipmap/button_off" 
     android:background="@android:color/black" 
     android:scaleType="centerInside" 
     /> 
    <ImageButton 
     android:layout_width="256dp" 
     android:layout_height="256dp" 
     android:id="@+id/second_button" 
     android:layout_gravity="center_horizontal" 
     android:src="@mipmap/second_off" 
     android:background="@android:color/black" 
     android:scaleType="centerInside" 
     /> 

</LinearLayout> 

回答

0

如果我的理解正確 - 在您的XML佈局文件中,您將ImageButton設置爲width=256dpheight=256dp,並且src = drawable/your_drawable。 xxxhdpi可繪製的寬度和高度192px(我假設比mdpi - 48,hdpi - 72,xhdpi - 96,xxhdpi - 144,xxxhdpi - 192)。

如果是這樣,當然比的圖像是模糊的,因爲設置了ImageButtons寬度/高度in mdpi(在XML來256dp),但你使用144x144(關係5是xxhdpi)繪製對象拉伸(由於scaleType的= centerCrop )。

如果你不希望有拉伸的圖像,在這裏爲大家介紹一些選項(可能不是全部):

  1. 您需要將scaleType改變centerInside(或不scaleType) - 你會得到小按鈕 - 如果需要的話
  2. 圖像只scaleDowned你需要做的ImageButton小 - 48×48
  3. 你需要添加更大的繪圖資源 - 你MDPI繪製應該在XML一樣大,你的ImageButton(MDPI - 256X 256 ,hdpi - 384x384,xhdpi - 512x512,xxhdpi - 768x768,xxxhdpi - 1024x1024)
  4. 你與你使用哪種詳細繪製資源解決您的問題張貼一些佈局代碼(XML),也許我們可以做進一步的調查,您的問題
+0

如果我使用centerInside,圖像在imageButton內部很小。絕對不是我想要的樣子。製作更小的圖像按鈕是不可行的,因爲它們是視圖的主要元素。另外我不相信這是提供升級的mdpi的最佳選擇,因爲較小的屏幕可能會變得混亂。你想知道什麼關於XML?無論如何看我編輯我的問題。 – drogaleggera

+0

哦,現在我看到另一個問題 - 你使用mipmap文件夾,而不是可繪製的文件夾(mipmap是爲啓動器圖標,繪製應用程序drawables) - 正如我上面提到的 - 如果你想使用256dp寬度/高度ImageButton,你需要有可繪製的MDX 256x 256,hdpi - 384x384,xhdpi - 512x512 ... – petin

+0

我想我知道它在圖像所在的文件夾中沒有區別,實際上在drawables中 - *應該只放置黑/白色的圖標。無論如何,我固定從你的想法開始,我在1024x1024在mipmap-nodpi文件夾中提供了相同的圖片,並使用了centerCrop。這將圖像縮放回256x256或任何我選擇imageButton。唯一的缺點是屏幕小於4的設備「下部按鈕會被裁剪掉,我無法使用scrollView工作。無論如何,感謝我對這個解決方案非常滿意。 – drogaleggera