AsyncTask的得到一个错误的字符串参数 [英] AsyncTask get a wrong String parameter
问题描述
我试图加载在AsyncTask的位图,在onclick我将执行myAsyncTask并得到位图作为结果。我坚持用NullPointerException异常,因为String参数,我把给myAsyncTack是德codeD错误的(见截图logcat中,第一行是字符串数据[位置]的log.d,第二个是从myAsyncTask德code法)。在我的code我需要打开大量的背景图片,我该怎么办它myAsyncTask吧?
I'm trying to load bitmaps in the asyncTask, in the onClick I will execute myAsyncTask and get bitmap as result. I'm stuck with NullPointerException, because String parameter, that I put to myAsyncTack is decoded wrong (see logcat screenshot, first line is log.d of String data[position], and the second is from myAsyncTask decode method). In my code I need to open lots of images at background, how can I do it right with myAsyncTask?
执行
Log.d("Files", "DATA: " + data[position]);
try{
ImageView mImg = (ImageView) vi.findViewById(R.id.imageView);
BitmapTask btmt = new BitmapTask();
btmt.execute(data[position]);
mImg.setImageBitmap(btmt.get());
} catch (Exception e){
e.printStackTrace();
}
return vi;
异步:
public class BitmapTask extends AsyncTask {
@Override
protected Bitmap doInBackground(String... bmt) {
Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/MANUAL/workflow/" + bmt);
int targetWidth = bm.getWidth() / 1;
int targetHeight = bm.getHeight() / 1;
Bitmap size = Bitmap.createBitmap(bm, 0, 0, targetWidth, targetHeight, matrix(), true);
return size;
}
@Override
protected void onPostExecute(Bitmap result) {
}
}
logcat的:
logcat:
推荐答案
更改此:
Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/MANUAL/workflow/" + bmt);
这样:
Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/MANUAL/workflow/" + bmt[0]);
您必须让字符串...的第一个元素BMT
字符串数组。
这篇关于AsyncTask的得到一个错误的字符串参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!