2

我試圖在文件列表視圖中使用ic_library_books_black_48dpMaterial Icon作爲文件類型圖標。材料圖標:縮放48dp到144dp的限制

可用的最大文件,ic_library_books_black_48dp.png,進來

drawable-mdpi 
drawable-hpi 
drawable-xhdpi 
drawable-xxhdpi 
drawable-xxxhdpi 

由於圖像文件類型顯示縮略圖預覽,所需要的一致性較大的圖標下面的密度。他們分別調整爲144x144 DP

<ImageView 
    android:id="@+id/grid_item_iv" 
    android:layout_width="144dp" 
    android:layout_height="144dp"/> 

下面是一個在視圖中的原型放大的xhdpi設備上:

File listing view :放大瀏覽器中看到的像素化的差異。

我很不滿意提供xhdpi分辨率,所以我做了xxhdpi和xxxhdpi版本的副本,因此他們改名,並把它們放到繪製-xhdpi文件夾

resources 
    drawable-xhdpi 
     ic_library_books_black_48dp.png 
     ic_library_books_black_48dp_xxhdpi.png 
     ic_library_books_black_48dp_xxxhdpi.png 

然後將它們在GetView()

switch (fileType) 
{ 
    case AttachmentFileType.FileType.Docs: 
     iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp); 
     break; 
    case AttachmentFileType.FileType.Audio: 
     iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp_xxhdpi); 
     break; 
    case AttachmentFileType.FileType.Images: 
     iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp_xxxhdpi); 
     break; 
    default: 
     iv.SetImageResource(Resource.Drawable.ic_attachment_test); 
     break; 
} 

分配我更喜歡的ic_library_books_black_48dp_xxxhdpi.png放大噸的清晰度o我的xhdp設備上有144x144的dp。但是,這種方法不適用於更高密度的屏幕(xxhdpi,xxxhdpi),因爲xxxhdpi是ic_library_books_black_48dp.png提供的最高版本。爲了支持xxhdpi和xxxhdpi,我需要一個xxxxhdpi和xxxxxhdpi版本的圖標(即「高兩個等級」)。 有沒有辦法使這項工作沒有導致創建自定義圖標(可以android studio或可能編輯程序高檔,同時保持像素密度)?

+1

您是否嘗試過使用矢量圖標?你沒有指定你的API版本要求,但我讀過這個並使用它。 –

+0

我已經閱讀過有關它們的簡短介紹。我需要支持棉花糖。 – samosaris

+0

所以這就是.svg文件,很好(向量的5.0/api 21分鐘)。 – samosaris

回答

1

如果可以,我會使用矢量圖形。他們直接從Android Studio支持。

File -> New -> Vector Graphic

然後點擊圖標「搜索」 ......找到你的圖書館圖書圖標...

Library Books

下一頁,並完成它。 (這裏不需要改變任何東西)。

如果你超過API 21,那麼你很好走,你可以像任何其他圖標一樣引用它。

如果您需要對較低API的支持,請閱讀the official Android Documentation about Vector Drawables

此外,請閱讀全部關於Android Studio support here

2

一個棘手的方式是將imageView的scaleType設置爲fitcenter,並將常量width = 144dp和height = 144dp設置爲您的imageview。它會將您的圖標放大到144dp

<ImageView 
    android:layout_width="144dp" 
    android:layout_height="144dp" 
    android:scaleType="fitCenter" 
    android:src="@drawable/ic_library_books_black_48dp"/> 
0

將imageView的scaleType用於FIT_CENTER。 FIT_CENTER-使用CENTER縮放圖像。 在XML文件

android:scaleType="fitCenter" 

或在你的Activity類

imgview.setScaleType(ImageView.ScaleType.FIT_CENTER);