public class MainActivity extends AppCompatActivity {
LoadImage loadimg;
ImageView imageView;
Bitmap bmImg;
@Override
protected void onCreate(Bundle savedInstanceState) {
imageView = (ImageView) findViewById(R.id.imageView1);
}
private class LoadImage extends AsyncTask<String, String, Bitmap> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("이미지 로딩중입니다...");
pDialog.show();
}
protected Bitmap doInBackground(String... args) {
try {
bmImg = BitmapFactory
.decodeStream((InputStream) new URL(args[0])
.getContent());
} catch (Exception e) {
e.printStackTrace();
}
return bmImg;
}
protected void onPostExecute(Bitmap image) {
if (image != null) {
imageView.setImageBitmap(image);
pDialog.dismiss();
} else {
pDialog.dismiss();
Toast.makeText(MainActivity.this, "이미지가 존재하지 않습니다.",
Toast.LENGTH_SHORT).show();
}
}
}
private class phpDown extends AsyncTask<String, Integer, String>{
protected void onPostExecute(String str){
String Image;
try{
JSONObject root = new JSONObject(str);
JSONArray ja = root.getJSONArray("results");
for(int i=0; i<ja.length(); i++){
JSONObject jo = ja.getJSONObject(i);
id = jo.getString("id");
Image = jo.getString("ImageUrl");
listItem.add(new ListItem(id,.... Image));
}
}catch(JSONException e){
e.printStackTrace();
}
loadimg = new LoadImage();
loadimg.execute(listItem.get(0).getData(9));
(필요없다고 생각한 부분은 생략하였습니다)
제가 데이터베이스를 연동해 안드로이드상에서 이미지를 출력하려고 하는데
이렇게 phpdown클래스에서 리스트로 이미지 url을 저장한 뒤 LoadImage클래스를 이용하여 비트맵화 해서 출력하는 코드를 작성하고 있습니다
그런데 단일 이미지는 출력이 되는데 이미지를 여러개 출력하는걸 어떻게 접근해야할 지 모르겠습니다..
LoadImage의 onPostExecute클래스 내에있는 imageView.setImageBitmap(image); 를 수정해야할 것 같은데 아무래도 혼자 찾아보면서 하려니 막막해서 부탁드리겠습니다