ImageView не меняет изображение после загрузки - PullRequest
0 голосов
/ 13 октября 2011

Я новичок в разработке приложений для Android. Я пытаюсь загрузить изображение из URL в ImageView, используя поток. Идея в том, что я хочу загрузить изображение, не прерывая общий процесс.

Проблема в том, что ImageView не загружает изображение после завершения его загрузки; Я должен нажать кнопку «Домой», чтобы ImageView загрузить изображение.

Есть ли ошибка в моем коде?

public class imageActivity extends Activity {
    private ImageView imgView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        imgView =(ImageView)findViewById(R.id.img);

        new Thread() {
            @Override
            public void run() {
                try {
                    Drawable drawable = LoadImageFromWebOperations("http://www.androidpeople.com/wp-content/uploads/2010/03/android.png");
                    imgView.setImageDrawable(drawable);
                } catch (Exception e) {
                    Log.e("TAG","" + e);
                }
            }
        }.start();
    }

    private Drawable LoadImageFromWebOperations(String url) {
        try {
            InputStream is = (InputStream) new URL(url).getContent();
            Drawable d = Drawable.createFromStream(is, "src name");
            return d;
        } catch (Exception e) {
            System.out.println("Exc=" + e);
            return null;
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 13 июня 2012

Я использую Prime для всей загрузки изображений, это сделает такие действия очень легкими.

0 голосов
/ 13 июня 2012

Потому что вы должны установить Drawable в потоке пользовательского интерфейса. Как это

        new Thread() {
        @Override
        public void run() {
            try {
                final Drawable drawable = LoadImageFromWebOperations("http://www.androidpeople.com/wp-content/uploads/2010/03/android.png");
                imgView.post(new Runnable(){
                    imgView.setImageDrawable(drawable);
                });
            } catch (Exception e) {
                Log.e("TAG","" + e);
            }
        }
    }.start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...