私はAndroidが初めてなので、しばらくお待ちください。画像のグリッドビューを描画するためにこのコードを作成しています.asynctaskを使用していますが、asynctaskが実行されているため、画像のバインドが遅くなり、画像が表示されません.デバッグすると表示されるのは、それを遅らせて問題を知っているからですが、誰かが私のために構文を修正してくれることを願っています。
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListAdapter;
public class ImagesAdapter extends BaseAdapter implements ListAdapter {
private Context mContext;
ImageView currentImageView;
Bitmap bmImg;
// Constructor
public ImagesAdapter(Context c) {
super();
mContext = c;
GridViewConfig.addImageUrls();
}
@Override
public int getCount() {
return GridViewConfig.getResim_list().size();
}
@Override
public Object getItem(int position) {
return GridViewConfig.getResim_list().get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null)
{
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
} else {
imageView = (ImageView) convertView;
}
downloadFile(GridViewConfig.getResim_list().get(position));
imageView.setImageBitmap(bmImg);
// imageView.setImageDrawable(LoadImageFromURL(GridViewConfig
// .getResim_list().get(position)));
return imageView;
}
void downloadFile(String fileUrl) {
AsyncTask<String, Object, String> task = new AsyncTask<String, Object, String>() {
@Override
protected String doInBackground(String... params) {
URL myFileUrl = null;
try {
myFileUrl = new URL(params[0]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String unused) {
/* if (currentImageView == null) {
currentImageView = new ImageView(mContext);
}
currentImageView.setImageBitmap(bmImg); */
}
};
task.execute(fileUrl);
}
gridviewconfig クラスは必要な画像を返します。