Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Appi
20 / 20 / 6
Регистрация: 18.02.2015
Сообщений: 300
#1

Загрузить картинку в Drawable - Android

25.07.2015, 04:16. Просмотров 1974. Ответов 9
Метки нет (Все метки)

И так. Смотрите, дефолтные картинки я кидаю в Draweable. И их от туда беру.
Как бы мне взять картинку динамически? Ну смотрите, пользователь закинул выбранные картинки к примеру в папку MyPhoto (Которая в корне создала программа). И от туда я уже мог подгрузить картинки.
Либо подскажите решение по лучше.

Суть в том, что мне нужно создать определенный альбом для пользователя и там в том альбоме пользователь сохраняет или удаляет от туда картинки (Какая-то папка). И приложение будет видеть только этот альбом(папку) и никакой другой

Добавлено через 39 минут
Юзаю Android Studio
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3024 / 1826 / 191
Регистрация: 13.01.2012
Сообщений: 6,929
26.07.2015, 13:48     Загрузить картинку в Drawable #2
один из миллиона способов (изображение размещается в центре View)
C++
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 static void drawImage(Context context, Uri uri, ImageView view, int viewWidth, int viewHeight) {
        if (uri == null || viewWidth <= 0 || viewHeight <= 0) {
            return;
        }
        
        try {
            Bitmap src = Bitmap.createBitmap(Media.getBitmap(context.getContentResolver(), uri));
            if (src.getWidth() == 0 || src.getHeight() == 0) {
                return;
            }
            
            int w;
            int h;
            int dx;
            int dy;
            if ((float)src.getWidth() / src.getHeight() > (float)viewWidth / viewHeight) {
                w = src.getWidth();
                h = src.getWidth() * viewHeight / viewWidth;
                dx = 0;
                dy = (h - src.getHeight()) / 2;
            } else {
                h = src.getHeight();
                w = src.getHeight() * viewWidth / viewHeight;
                dy = 0;
                dx = (w - src.getWidth()) / 2;
            }
 
            Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
 
            Canvas canvas = new Canvas(bmp);
            
            canvas.drawBitmap(src, dx, dy, null);
            
            view.setImageBitmap(bmp);
        } catch (FileNotFoundException e) {
        } catch (IOException e) {
        }
    }
Appi
20 / 20 / 6
Регистрация: 18.02.2015
Сообщений: 300
29.07.2015, 09:12  [ТС]     Загрузить картинку в Drawable #3
Как из Image изображение сохранить в Drawable. Изображение с интернета подгрузил, я в Image. А как сохранить в папку Drawable, не нашел ничего в гугле. Юзаю: Android Studio
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
29.07.2015, 09:20     Загрузить картинку в Drawable #4
Никак, этой папки нет в системе.
Appi
20 / 20 / 6
Регистрация: 18.02.2015
Сообщений: 300
29.07.2015, 13:35  [ТС]     Загрузить картинку в Drawable #5
А какой путь тогда будет, если ты находишься в папке Путь/Android/com.имя
Типо корневая которая папка.
Паблито
2025 / 1767 / 548
Регистрация: 12.05.2014
Сообщений: 6,265
Завершенные тесты: 1
29.07.2015, 13:57     Загрузить картинку в Drawable #6
можно сохранять файл в кеш, а можно куда-нибудь в Downloads или другую, видимую всем папку
непонятно что надо получить в результате
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 724
29.07.2015, 14:05     Загрузить картинку в Drawable #7
нельзя писать в /res/drawable/ так же как в любую другую часть apk
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
29.07.2015, 14:41     Загрузить картинку в Drawable #8
Цитата Сообщение от Appi Посмотреть сообщение
Типо корневая которая папка.
Держи, только на днях делал.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    public void setDirFiles() { 
        if (isExternalStorageWritable() && MainActivity.SAVE_ON_SD) // true && true
            dirfiles = ctx.getExternalFilesDir(null) + "/";
        else
            dirfiles =ctx.getFilesDir() + "/";
    }
    
    /* Проверяет, доступно ли external storage для чтения и записи */
    public boolean isExternalStorageWritable() {
       String state = Environment.getExternalStorageState();
       if (Environment.MEDIA_MOUNTED.equals(state)) return true;          
       return false;
    }
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
29.07.2015, 14:47     Загрузить картинку в Drawable #9
Вот набросал примерчик, как сохранить и достать картинку в/из памяти. При нажатии на imageView2, достаём bitmap из imageView, записываем во внутреннюю память. Потом читаем и сетим наш прочитаный из памяти bitmap в imageView2(у меня работает):

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 Test extends Activity implements View.OnClickListener {
 
    ImageView imageView, imageView2;
    Bitmap bitmap;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
 
        imageView = (ImageView) findViewById(R.id.imageView);
        imageView2 = (ImageView) findViewById(R.id.imageView2);
        bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
 
        imageView2.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        saveBitmap(bitmap);
        Bitmap newBitmap = loadBitmap();
        imageView2.setImageBitmap(newBitmap);
    }
 
    private void saveBitmap(Bitmap bitmap) {
        try {
            FileOutputStream out = new FileOutputStream(this.getFilesDir().toString() + "MyBitmap");
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private Bitmap loadBitmap() {
        return BitmapFactory.decodeFile(this.getFilesDir().toString() + "MyBitmap");
    }
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2017, 15:40     Загрузить картинку в Drawable
Еще ссылки по теме:

Создание Drawable shape, rectange Android
Работа с Drawable Android
Android Icon в Drawable возможно?
Android Drawable
Разместить Drawable посередине EditText Android

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

Или воспользуйтесь поиском по форуму:
CoMMoN86
5 / 2 / 1
Регистрация: 18.05.2013
Сообщений: 419
07.03.2017, 15:40     Загрузить картинку в Drawable #10
у меня ругается
Java
1
Bitmap src = Bitmap.createBitmap(Media.getBitmap(context.getContentResolver(), uri));
на Media ни какие средства не помогают
Yandex
Объявления
07.03.2017, 15:40     Загрузить картинку в Drawable
Ответ Создать тему
Опции темы

Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru