2016-02-18 60 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。