Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
znseday
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 483
#1

Загрузка изображений из интернета на реальном устройстве

26.03.2015, 00:15. Просмотров 407. Ответов 0
Метки нет (Все метки)

По мотивам одной книжки написал такую вот программу, которая загружает и показывает изображение из интернета:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class MainActivity extends ActionBarActivity {
 
    private static final String DEBUG_TAG = "TestBitmapURL";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ImageSwitcher questionImageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
        questionImageSwitcher.setFactory(new MyImageSwitcherFactory());
        
        Drawable image = null;
        URL imageUrl;
        
        try {
            // Create a Drawable by decoding a stream from a remote URL
 
                imageUrl = new URL("http://www.perlgurl.org/Android/BeenThereDoneThat/Questions/q4.png");
                Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openStream()); // Эта строчка НЕ работает на реальном устройстве
                image = new BitmapDrawable(bitmap);
                
                questionImageSwitcher.setImageDrawable(image);
            
                } catch (Exception e) {
                   Log.e(DEBUG_TAG, "Decoding Bitmap stream failed.");
                }   
    }
    
    private class MyImageSwitcherFactory implements ViewSwitcher.ViewFactory {
        public View makeView() {
            ImageView imageView = new ImageView(MainActivity.this);
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
            return imageView;
        }
    }
}
На всякий случай - манифест:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.qwerty.testbitmapurl"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="21" />
    
    <uses-permission
        android:name="android.permission.INTERNET">
    </uses-permission>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
Программа без ошибок (и даже быстро) работает на эмуляторе. Но на реальном устройстве загрузка изображения работать не хочет. В чем может быть дело? (интернет на реальном устройстве включен)

Добавлено через 7 часов 20 минут
Немного включив мозг, я посмотрел в логе описание ошибки. Это android.os.NetworkOnMainThreadException.
Погуглив, оказалось, что начиная с ОС 3.0 нельзя загружать данные в главном потоке.
Сейчас разбираюсь с потоками...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2015, 00:15
Ответы с готовыми решениями:

Debugging на реальном устройстве
на днях решил занятся Android Studio и появился вопрос: у меня телефон Cubot...

Отладка на реальном устройстве
Добрый день, возникла следующая проблема: на одном устройстве приложение...

Тестирование на реальном устройстве
Появилась такая проблема. То, что написано в ней - сделал - ошибка осталась....

Не отображается на реальном устройстве текст кнопок
Здравствуйте, меня беспокоит одна проблема, при тесте на реальном устройстве...

Не получается запустить приложение на реальном устройстве
Я новичок в разработке ПО под данную ось сразу отмечу... Вообщем учусь и...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2015, 00:15

Как добраться до файлов на реальном устройстве
Делаю проект в Эклипсе. Приложение запускаю на реальном устройстве. Как мне...

Портится ли батарея при разработке на реальном устройстве?
Добрый жень. Хочу спросить тех людей, которые при разработке приложений под...

Запрос разрешения на создание каталога и запись файла на реальном устройстве
public static String FileKeyNumb = FileKey.class.getSimpleName(); private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru