저는 AsyncTask에 있어야하는 LoadImageFromWeb을 사용하여 ImageView에서 작업하고 있습니다. 나는 단지 문자열을 사용하기 때문에 AsyncTask를하지만 다른를 사용하는 다른 프로그램을 만들었습니다AsyncTask에서 ImageView를로드하는 더 쉬운 방법은 무엇입니까?
private void satellite() {
// TODO Auto-generated method stub
ImageView imgView =(ImageView)findViewById(R.id.satellite);
Drawable drawable = LoadImageFromWeb("http://www.pagasa.dost.gov.ph/wb/sat_images/satellite.gif");
imgView.setImageDrawable(drawable);
}
, 내 이제 이미지 뷰입니다 : AsyncTask를하지 않고 내 코드는이 아니라.
답변을 검색했지만 그 방법이 너무 혼란 스럽습니다.
public class MainActivity extends Activity {
ImageView mImgView1;
static Bitmap bm;
ProgressDialog pd;
String imageUrl = "https://www.morroccomethod.com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg";
BitmapFactory.Options bmOptions;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImgView1 = (ImageView) findViewById(R.id.mImgView1);
pd = ProgressDialog.show(MainActivity.this, "Aguarde...",
"Carregando...");
new ImageDownload().execute("");
}
public class ImageDownload extends AsyncTask<String, Void, String> {
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
loadBitmap(imageUrl, bmOptions);
return imageUrl;
}
protected void onPostExecute(String imageUrl) {
pd.dismiss();
if (!imageUrl.equals("")) {
mImgView1.setImageBitmap(bm);
} else {
Toast.makeText(MainActivity.this,
"Não foi possível obter resultados", Toast.LENGTH_LONG)
.show();
}
}
}
public static Bitmap loadBitmap(String URL, BitmapFactory.Options options) {
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bm = BitmapFactory.decodeStream(in, null, options);
in.close();
} catch (IOException e1) {
}
return bm;
}
private static InputStream OpenHttpConnection(String strURL)
throws IOException {
InputStream inputStream = null;
URL url = new URL(strURL);
URLConnection conn = url.openConnection();
try {
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setRequestMethod("GET");
httpConn.connect();
if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
inputStream = httpConn.getInputStream();
}
} catch (Exception ex) {
}
return inputStream;
}
}
를하고 너무 많이 나는 이미지 뷰에 사용되는 내 접근 방식에서 (나를 위해) 복잡하다 : 그들은이 같은 것을 사용하고 있습니다.
제 질문은 : 두 번째 코드를 사용하는 것 외에 다른 어떤 방법보다 간단하고 쉬운 방법이 있습니까? 나는 그것을 작동 시키려고 노력했지만 그렇지 않습니다. 이미지에 관해서 AsyncTask를 수행하는 법을 모르겠습니다. 그리고 나는 좌절감을 느낀다. 사전에 도움 :) 여기
이 [링크]을 보라는 (https://github.com/thest1/LazyList)는 이미지의 게으른로드, 당신이 당신의 문제를 해결하는 데 도움이 –