значок вкладки загрузки Android из внутренней памяти - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно изменить значок вкладки, если он выбран или нет. Я использую следующий селектор, который работает, если я использую изображения из папки Drawable.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/search_selected"
        android:state_selected="true" />
    <item android:drawable="@drawable/search_normal" />
</selector>

Однако мне нужно использовать изображения из данных / данных ... и использовать следующий код для загрузки изображения оттуда. Как обращаться с селектором, чтобы загрузить правильное изображение (если оно выбрано или нет), если мне нужно загрузить его из внутренней памяти? Спасибо

ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);

File imgFile = new  File(pathImage);

if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    icon.setImageBitmap(myBitmap); }

    //icon.setImageResource(R.drawable.tab_search;

1 Ответ

1 голос
/ 30 марта 2012

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

Получите оба изображения как BitmapDrawable и сделайте что-то вроде этого:

StateListDrawable selector = new StateListDrawable();
selector.addState(new int[]{ android.R.attr.state_enabled }, yourDefaultBitmapDrawable);
selector.addState(new int[]{ android.R.attr.state_selected }, yourSelectedBitmapDrawable);
icon.setImageDrawable(selector);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...