0

アプリに URL から画像を表示させようとしています。問題は AsyncTask にあると確信していますが、この 1 週間で何度かこのコードに戻ってきましたが、どこが間違っているのかまだわかりません。 .

インターネットのアクセス許可が設定されていますが、LogCat を取得できません

ImageView eventImage2;
eventImage2 = (ImageView) findViewById(R.id.eventImage2);

new imageupdate().execute();

public class imageupdate extends AsyncTask<Bitmap, Void, Bitmap> {

    @Override
    protected Bitmap doInBackground(Bitmap... url) {


        URL url1;

        try {


            url1 = new URL("http://masterzangetsu.eu/Apps/NowIGetYou/banner.png");
            HttpURLConnection connection  = (HttpURLConnection) url1.openConnection();

            InputStream is = connection.getInputStream();
            Bitmap img = BitmapFactory.decodeStream(is);


        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        return img;

    }

    protected void onPreExecute(String result) {


    }

    protected void onPostExecute(Bitmap result) {
        super.onPostExecute(result);

        eventImage2.setImageBitmap(result);

    }

}

で定義されたimg変数を知る限り、

img = BitmapFactory.decodeStream(is);

返される変数にリンクされていません

return img;

変数 result と img の両方が null として返されます

4

1 に答える 1

1

これを変える

  Bitmap result = null;

        InputStream is = connection.getInputStream();
        Bitmap img = BitmapFactory.decodeStream(is); 


        img = result;

  Bitmap img = null;

        InputStream is = connection.getInputStream();
        Bitmap img = BitmapFactory.decodeStream(is); 


        result = img;

return resultdoInBackground()nullそれらを切り替えているので、何が起こっても「img」になります。

また、このメソッドはスレッド上で実行されないためToast、 inを使用することはできません。それを にするか、またはに入れる必要があります。これらは私が見るものです。それでも問題が解決しない場合は、具体的に何が問題なのかをもう少し明確にする必要があります。デバッグしてブレークポイントを使用して、返されるべきではないものを確認し、問題の原因をもう少し特定する必要がありますdoInBackground()UILogToastonPostExecute()onProgressUpdate()

AsyncTask - 更新は、以外の他のメソッドのいずれかでUI実行する必要があります。または、値を に戻してそこを更新することもできます。AsyncTaskdoInBackground()ActivityUI

于 2013-04-09T13:05:14.690 に答える