Android берет путь изображения из текстового файла - PullRequest
0 голосов
/ 24 октября 2018

У меня в папке с активами есть текстовый файл, в котором содержатся сведения о розетке, например:

McDonald's |Любой аутлет Макдональдс |Применимо к любому обеденному набору блюд |Купи 1 получи 1 бесплатно |1 августа - 31 августа |RM 32,00 |RM 16,00 |icon_nandos.png

И я их разделяю и сохраняю в массиве строк.Но я не мог установить изображение из 7-го элемента массива (это icon_nandos.png)

 try{
        bufferedReader = new BufferedReader(new
                InputStreamReader(this.getAssets().open("food_catalog.txt")));
        while ((food = bufferedReader.readLine())!=null) {
            if (!food.equals("")) {
                String[] foodInfo = food.split("\\|");

                    tv.setText(foodInfo[0] + "\n" + foodInfo[1] + "\n" + foodInfo[2] + "\n" + foodInfo[3] + "\n" + foodInfo[4] + "\n" + foodInfo[5] + "\n" + foodInfo[6] + "\n" + foodInfo[7] + "\n");
                   img.setImageBitmap(BitmapFactory.decodeFile(foodInfo[7]));
            }
        }
    }

Я пробовал несколько способов установки изображений, таких как setImageURI, но изображение все равно не показывалось.Я делаю что-то не так?Многие источники в Интернете не ссылаются на то, что я делаю.

Расположение изображения и текстового файла

Image and text file loacation

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Я могу получить изображение, обрезав foodInfo [7]

Использование:

  img.setImageBitmap(BitmapFactory.decodeStream(getAssets().open
                            (foodInfo[7].trim())));

вместо

 img.setImageBitmap(BitmapFactory.decodeFile(foodInfo[7]));
0 голосов
/ 24 октября 2018

вам нужно открыть файл изображения также через getAssets().

Попробуйте, как показано ниже

InputStream inStream= getAssets().open(foodInfo[7]);
Drawable drw = Drawable.createFromStream(inStream, null);
img.setImageDrawable(drw);
inStream.close();

Предполагая, что ваш foodInfo[7] дает вам имя "icon_nandos.png"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...