2016-03-28 69 views
0

我有一個Bitmap(1538 x 2000)並將其設置爲srcImageView但是當我運行應用程序沒有顯示出來(但活動的背景顏色),我讀了關於位圖尺寸限制的事情,但如果問題是爲什麼我可以通過相同設備上的庫查看此位圖的限制?ImageView什麼也沒有

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
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"> 

<ImageView 
    android:id="@+id/iv" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="fitCenter" 
    android:adjustViewBounds="true" 
    android:src="@drawable/pic3"/> 

</FrameLayout> 

任何幫助將不勝感激

+0

你可以發佈你的XML佈局嗎? – Nanoc

+0

嘗試使用[Picasso](http://square.github.io/picasso/)獲取大圖像 – khyper

+0

我認爲你會得到BitmapOutofMemory異常,縮小你的位圖並在imageview中使用。 –

回答

0

嗯,我認爲這個問題是我的虐待drawable文件夾,而不考慮機器人的行爲,我把圖像,其中Android的假設是正確的mdpi設備drawable文件夾。

我的logcat在此之前指點:

OpenGLRenderer: Bitmap too large to be uploaded into a texture (2307x3000, max=2048x2048) 

正如你可以看到原來的尺寸爲(1538x2000)和logcat的報告它(2307x3000),這意味着Android的規模(1.5倍),我的圖像,以適合我hdpi設備,當我使用@ Prakhar資產加載它時,scarlett speedstr說,它的工作原理如何,我沒有android干擾。

此外,我嘗試了更多,並把圖像在drawable-hdpi,它沒有任何規模的罰款。

感謝您的有益答案和意見。

0

沒有爲android系統中的圖像大小的限制。它通常是2048(最大尺寸),但您可以通過以下方法獲得設備的特定值:Canvas.getMaximumBitmapWidth(), Canvas.getMaximumBitmapHeight()

您的圖像大小看起來不錯,但也許它在一個錯誤的可繪製文件夾中(並且因爲這個,解析度)。您可以將圖像放到drawable-nodpi(更多信息:http://developer.android.com/guide/practices/screens_support.html)文件夾中以確保它不會縮小/縮小,但我個人認爲使用較低的分辨率會更好,可能在多個文件夾中(或矢量素材,if該圖像在SVG中可用)

2

您可以試試這個。

把圖像中的資產文件夾

src->main->assets 

如果該文件夾不存在,創建它。

將圖像放在那裏後,在java中使用此代碼(以編程方式設置圖像)。

Drawable d = null; 
    try { 
     d = Drawable.createFromStream(getAssets().open("YOUR_IMAGE_NAME"), null); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    imageView.setImageDrawable(d); 

確保在使用圖像名稱時也添加擴展名。例如:background.jpg或backgroung.png。

這應該工作。

+0

tnx @Shree,它的工作原理,但我想知道爲什麼它擴大了我的位圖,現在的大小與原始版本是一樣的 –

+0

@Farshad老實說,我也不清楚這一點,但我面對這個問題與大圖片。在具有高內存和處理器的設備中,它工作正常,但在其他設備中,它不是空白就是應用程序崩潰。當我通過編程的方式,它的工作。我嘗試瞭解這一點,不太瞭解...但它必須做一些配置緩存內存 –

+0

該圖像是在drawable文件夾中,考慮到logcat消息android縮放1.5倍,我不知道爲什麼!但是當我將它作爲資產加載時,結果維度就是我所期望的。 –