2016-02-18 61 views
0

我遇到了麻煩,我該如何訪問繪圖文件夾(-hdpi,-mdpi,-xhdpi,-xxhdpi,-xxxhdpi)中的drawable icons.png。因爲我想把它放到我的listview中。我使用API​​ 23我無法使用drawable .png

MainActivity.java

public class MainActivity extends AppCompatActivity { 
private String somevar; 

Integer[] myImg= { 
     ContextCompat.getDrawable(this,R.drawable.)//it's not recognizing. 


    }; 

    .... 
     .... 
} 

enter image description here

+0

我認爲它會實現使用getIdentifier()嘗試此鏈接:.http://developer.android.com/intl/es/reference/android/content/res/Resources.html#getIdentifier%28java.lang.String ,%20java.lang.String,%20java.lang.String%29 –

+2

嘗試從'drawable'中獲取'drawable-?'文件夾,作爲'res'的直接子節點。另外,將'drawable'設置爲一個單獨的文件夾 - 也是'res'的一個子項,並將圖像的副本(所需的大小)放入其中。請參閱此處的結構:http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources –

+0

因此,我在我的可繪製文件夾下製作了我的圖標副本? – jemz

回答

2

如果您使用Integer array,請傳遞資源ID而不是傳遞可繪製對象。否則,請使用一組drawables。

+0

我還是新的,在這裏,我可以找到資源ID? – jemz

+2

您使用它們作爲R.drawable.yourImageName – Piyush

+0

否,像這樣:Integer [] myImg = { R.drawable.yourImageName,...};對於整數數組,如下所示:Drawable [] myImg = {Context:Object.getDrawable(this,R.drawable.yourImageName),..};爲可繪製陣列。 – Piyush

1

轉換Integer陣列

Integer[] myImg= { 
ContextCompat.getDrawable(this,R.drawable.)//it's not recognizing. 
}; 

Drawable陣列:

Drawable[] myImg= { 
    ContextCompat.getDrawable(this,R.drawable.)//Now it will recognize it. 
}; 
+0

它可以識別,但我想用整數 – jemz

+0

ContextCompat.getDrawable();函數返回Drawable。你想用integer []做什麼? 另一個getResources.getDrawable(R.drawabl。)已棄用。 –

1

首先檢查您的* .png是否存在於項目中,然後重建您的項目。

如果妳想要使用IntegerArray則:

Integer[] myImg= { 
    R.drawable.yourImageName1, 
    R.drawable.yourImageName2 
    .... 
}; 

R.drawable.yourImageName1是一個整數。

~.getDrawable(..);返回Drawable。