Java 从drawable获取图像
我是android开发的初学者 我的问题是如何从drawables加载此图像 使用getResource函数创建适配器 以及如何将drawbles中的所有项放入adapter类 (这是我的示例数据类,其中图像加载到图像适配器)Java 从drawable获取图像,java,android,arraylist,Java,Android,Arraylist,我是android开发的初学者 我的问题是如何从drawables加载此图像 使用getResource函数创建适配器 以及如何将drawbles中的所有项放入adapter类 (这是我的示例数据类,其中图像加载到图像适配器) 公共类样本数据{ 公共静态最终整数样本数据项计数=20; 静态int-i; 公共静态ArrayList生成示例数据(){ String repeat=“repeat”; 最终ArrayList数据=新ArrayList(); 对于(i=0;i代码>是代码> 98 等等,您
公共类样本数据{
公共静态最终整数样本数据项计数=20;
静态int-i;
公共静态ArrayList生成示例数据(){
String repeat=“repeat”;
最终ArrayList数据=新ArrayList();
对于(i=0;i < /代码> 如果您认为ASCII表中的char <代码> a <代码>是十进制<代码> 97 <代码>,<代码> b>代码>是代码> 98 等等,您可以做的是
public static ArrayList<Data> generateSampleData(Context context) {
String repeat = " repeat";
final ArrayList<Data> datas = new ArrayList<Data>();
for (i = 0; i < SAMPLE_DATA_ITEM_COUNT; i++) {
Data data = new Data();
data.imageUrl = context.getResources().getIdentifier(String.valueOf((char)(97+i)), "drawable", context.getPackageName());
datas.add(data);
}
return data;
}
publicstaticarraylist生成示例数据(上下文){
String repeat=“repeat”;
最终ArrayList数据=新ArrayList();
对于(i=0;i
如果Drawable遵循相同的命名约定,则不需要开关或if构造,只需要循环。当然,您需要上下文来访问资源,因此如果可提取数据的数量等于示例数据项计数,我就更改了方法的签名-
final ArrayList<Data> datas = new ArrayList<Data>();
final int[] drawables = {
R.drawable.a, R.drawable.b, ...
};
for (i = 0; i < drawables.length; i++) {
Data data = new Data();
data.imageUrl = drawables[i];
datas.add(data);
}
return datas;
final ArrayList data=new ArrayList();
最终整数[]可提取项={
可抽出的,可抽出的,可抽出的。。。
};
对于(i=0;i
这将在每次迭代中保存一系列ifs/switch语句,以及对系统的更昂贵调用。使用switch
语句。它的效率不比高
。只是更优雅一些
。我想知道答案,但我得到了一个错误值string不能应用。错误:(72,92)错误:方法生成类中的示例数据SampleData不能应用于给定的类型;必需:找到上下文:没有参数原因:实际参数列表和形式参数列表长度不同是的,该方法将上下文对象作为参数。您可以帮助我解决问题吗?您应该为该方法提供上下文。例如,如果您在创建活动时调用它,您可以使用this
final ArrayList<Data> datas = new ArrayList<Data>();
final int[] drawables = {
R.drawable.a, R.drawable.b, ...
};
for (i = 0; i < drawables.length; i++) {
Data data = new Data();
data.imageUrl = drawables[i];
datas.add(data);
}
return datas;