我正在尝试使用 AsyncTask 类从原始文件夹中检索图像。我在这个样本上工作了几个小时。 .我没有得到任何异常,但屏幕上不会显示任何内容。可能遗漏了很多东西。你能检查一下我的代码吗?我又做错了什么
public class MainActivity extends Activity {
ImageView img;
asynclass Myclass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img=new ImageView(this);
/***
* Field[] filelds=R.raw.class.getFields();
String [] names=new String[filelds.length];
for (int i = 0; i < filelds.length; i++) {
names[i]=filelds[i].getName()+".jpg";
}
*
*
*
* */
//Toast.makeText(MainActivity.this, names[0], 0).show();
String s="android.resource://"+getApplication().getPackageName()+"/raw/d.jpg/";
this.setContentView(img,
new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
Myclass=(asynclass) new asynclass().execute(s);
}
public class asynclass extends AsyncTask<String, Void, Bitmap>{
@Override
protected Bitmap doInBackground(String... params) {
Bitmap bmp=null;
bmp=BitmapFactory.decodeFile(params[0]);
return bmp;
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(result!=null){
img.setImageBitmap(result);
}
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
}
最佳答案
我看到的一些东西:
1) 您可以使用 R.raw.fileName
从 raw
文件夹访问资源。
2) 你不应该多次调用 setContentView()
3) 无需转换您的AsyncTask
。
我建议您花一些时间复习一些教程,这样您就可以打下坚实的 Android 基础。
关于android - 对异步图像加载感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23740744/