LLLit: Изучение и практика программирования

Я пытаюсь загрузить изображение с сервера, используя асинхронную задачу в Android, но изображения не отображаются. Я не знаю, почему?

Мой код:

public class MainActivity extends ActionBarActivity  {

    String URL1 = "http://cs619925.vk.me/v619925510/1b82b/0nTm-Pj0ABM.jpg";
    String URL2 = "http://8tracks.imgix.net/i/000/955/740/87318.original-8382.jpg?rect=128,0,768,768&q=65&sharp=15&vib=10&fm=jpg&fit=max&w=200&h=200";
    String URL3 = "http://a400.idata.over-blog.com/300x225/1/89/70/64/Autres-images/smiley-face-on-beach.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView myFirstImage = (ImageView) findViewById(R.id.iv1);
        ImageView mySecondImage = (ImageView) findViewById(R.id.iv2);
        ImageView myThirdImage = (ImageView) findViewById(R.id.iv3);        


        myFirstImage.setTag(URL1);
        mySecondImage.setTag(URL2);
        myThirdImage.setTag(URL3);


        new DownloadImagesTask().execute(myFirstImage);
        new DownloadImagesTask().execute(mySecondImage);
        new DownloadImagesTask().execute(myThirdImage);

    }

        public class DownloadImagesTask extends AsyncTask<ImageView, Void, Bitmap> {

            ImageView imageView = null;

            protected Bitmap doInBackground(ImageView... imageViews) {
                this.imageView = imageViews[0];
                return download_Image((String)imageView.getTag());
            }

            protected void onPostExecute(Bitmap result) {
                imageView.setImageBitmap(result);
            }

            private Bitmap download_Image(String url) {

                Bitmap bmp =null;
                try{
                    URL ulrn = new URL(url);
                    HttpURLConnection con = (HttpURLConnection)ulrn.openConnection();
                    InputStream is = con.getInputStream();
                    bmp = BitmapFactory.decodeStream(is);
                    if (null != bmp)
                        return bmp;

                    }catch(Exception e){}
                return bmp;
            }
        } 



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

При запуске на эмуляторе у меня не отображаются изображения. Помогите мне с этим. А я даже не знаю, что такое роор? если есть.


  • Попробуйте использовать точки останова и отладьте свой код, чтобы лучше понять, что пошло не так. 02.03.2015
  • Я проверил журнал. Он говорит, что называется нереализованным opengl es api 02.03.2015
  • Эмулятор @Garry не поддерживает проверку opengl здесь ... es API">stackoverflow.com/questions/5926316/ 02.03.2015
  • Не могли бы вы поместить логи для исключения, которое вы обработали в aSyncTask. Там вы можете найти что-то интересное для решения вашей проблемы. 02.03.2015
  • Я попробовал ваш код, у меня он отлично работает на эмуляторе, для загрузки изображений требуется время, возможно, из-за подключения к Интернету. Вы можете попробовать использовать загрузчик, пока изображение не загрузится. 02.03.2015
  • @Swats теперь и у меня работает :) Не знаю, почему раньше не работало. 02.03.2015

Ответы:


1

если вы хотите скачать файл или, если вы хотите загрузить изображение в представление изображений, используйте picasso:

Picasso.with(context).load(URL1).into(myFirstImage);

public class MainActivity extends ActionBarActivity  {

String URL1 = "http://cs619925.vk.me/v619925510/1b82b/0nTm-Pj0ABM.jpg";
String URL2 = "http://8tracks.imgix.net/i/000/955/740/87318.original-8382.jpg?rect=128,0,768,768&q=65&sharp=15&vib=10&fm=jpg&fit=max&w=200&h=200";
String URL3 = "http://a400.idata.over-blog.com/300x225/1/89/70/64/Autres-images/smiley-face-on-beach.jpg";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView myFirstImage = (ImageView) findViewById(R.id.iv1);
    ImageView mySecondImage = (ImageView) findViewById(R.id.iv2);
    ImageView myThirdImage = (ImageView) findViewById(R.id.iv3);        

     Picasso.with(this).load(URL1).into(myFirstImage);
     Picasso.with(this).load(URL2).into(mySecondImage);
     Picasso.with(this).load(URL3).into(myThirdImage);

   }
 }   
02.03.2015
  • Можете ли вы сказать мне, где именно это использовать в моем коде? 02.03.2015
  • вам нужно добавить библиотеку в проект 02.03.2015
  • Я добавил библиотеку, которую скачал отсюда: square.github.io/picasso, но там написано com .squareup не может быть разрешен. 02.03.2015
  • попробуйте Android Studio или идею Intellij, я не знаю, что вы делаете неправильно 02.03.2015

  • 2

    Вы можете легко загрузить изображение, используя библиотеку Picasso и Glide.

    10.03.2017
    Новые материалы

    Как развивается смешанно-целочисленное программирование, часть 7
    Унифицированная техника раннего завершения для первично-двойственных алгоритмов в смешанно-целочисленном коническом программировании (arXiv) Автор : Ювэнь Чэнь , Кэтрин Нин , Поль Гулар..

    Как научить модель Keras распознавать текст переменной длины
    Я некоторое время играл с официальным примером Keras image_ocr.py и хочу поделиться своими выводами в этом посте. В официальном примере выполняется только обучение модели, но отсутствует..

    Практическая пакетная нормализация
    История начинается после использования инициализации He вместе с ELU (или любым вариантом ReLU) может значительно снизить опасность проблем с исчезающими/взрывающимися градиентами в начале..

    Поэзия онлайн-кодирования: путешествие пикселей и страсти
    В мире, наполненном инновациями, онлайн-обучение программированию становится холстом, на котором обретает форму полотно вашей мечты. Это больше, чем просто создание строк кода; это сродни..

    Обработка изображений с помощью Python - размытие и повышение резкости для начинающих
    Как применить ядра свертки к цветным изображениям? В этой статье мы обсудим, как применять ядра размытия и повышения резкости к изображениям. Эти базовые ядра составляют основу многих более..

    Ограничение скорости в .NET Core 7 Web API
    Что такое ограничение скорости? Ограничение скорости — это процесс, используемый для ограничения количества запросов, разрешенных для определенного ресурса в указанном временном окне. .NET..

    Стабильная Diffusion 1.0 выдаёт более красивые картинки, чем SD 2.1?! Почему?
    Удивительные открытия, которые я сделал недавно. Смотрите в видео: https://youtu.be/PakgD6FewoU Есть одно логичное объяснение — что у вас?