Android Drawable вопрос - PullRequest
       6

Android Drawable вопрос

0 голосов
/ 25 апреля 2010

Я пытаюсь создать нарисованный в коде и изменить цвет на основе некоторых критериев. Я могу заставить его работать, но он не хочет, чтобы я установил отступы для вида. Любая помощь будет оценена.

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/icon"
    android:layout_width="50px"
    android:layout_height="fill_parent"
/>

<TextView
    android:id="@+id/label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="17px"
    android:textSize="28sp"
/>

            ImageView icon = (ImageView) row.findViewById(R.id.icon);
        ShapeDrawable mDrawable;

        int x = 0;
        int y = 0;
        int width = 50;
        int height = 50;

        float[] outerR = new float[] { 12, 12, 12, 12, 12, 12, 12, 12 };

        mDrawable = new ShapeDrawable(new RoundRectShape(outerR, null, null));
        mDrawable.setBounds(x, y+height, x + width, y);



        switch(position){

        case 0:
            mDrawable.getPaint().setColor(0xffff0000);      //Red
            break;
        case 1:
            mDrawable.getPaint().setColor(0xffff0000);      //Red
            break;
        case 2:
            mDrawable.getPaint().setColor(0xff00c000);      //Green
            break;
        case 3:
            mDrawable.getPaint().setColor(0xff00c000);      //Green
            break;
        case 4:
            mDrawable.getPaint().setColor(0xff0000ff);      //Blue
            break;
        case 5:
            mDrawable.getPaint().setColor(0xff0000ff);      //Blue
            break;
        case 6:
            mDrawable.getPaint().setColor(0xff696969);      //Gray
            break;
        case 7:
            mDrawable.getPaint().setColor(0xff696969);      //Gray
            break;
        case 8:
            mDrawable.getPaint().setColor(0xffffff00);      //Yellow
            break;
        case 9:
            mDrawable.getPaint().setColor(0xff8b4513);      //Brown
            break;
        case 10:
            mDrawable.getPaint().setColor(0xff8b4513);      //Brown
            break;
        case 11:
            mDrawable.getPaint().setColor(0xff8b4513);      //Brown
            break;
        case 12:
            mDrawable.getPaint().setColor(0xffa020f0);      //Purple
            break;
        case 13:
            mDrawable.getPaint().setColor(0xffff0000);      //Red
            break;
        case 14:
            mDrawable.getPaint().setColor(0xffffd700);      //Gold
            break;
        case 15:
            mDrawable.getPaint().setColor(0xffff6600);      //Orange
            break;
        }

        icon.setBackgroundDrawable(mDrawable);
        icon.setPadding(5, 5, 5, 5);

Если я устанавливаю отступ в XML, он просто игнорируется.

Спасибо, Rob

1 Ответ

1 голос
/ 25 апреля 2010

Попробуйте установить отступы для ShapeDrawable ( ссылка ).

И еще одна вещь: заполнение будет перемещать содержимое представления изображения, а не фон (то есть само представление изображения). Вы устанавливаете рисование в качестве фона ImageView.

Используйте функцию setImageDrawable () для получения эффекта setPadding () представления изображения.

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