Android. GradientDrawable setGradientCenter - PullRequest
       1

Android. GradientDrawable setGradientCenter

1 голос
/ 02 января 2012

Я пытаюсь заставить GradientDrawable динамически изменять его центр градиента.У меня есть простой тестовый вид, который просто рисует фон с градиентом.Чем я написал такой код

public class TestActivity extends Activity {

    protected TestView test_view;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        test_view = (TestView)findViewById(R.id.test_view);
        test_view.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                float x = event.getX()/TestView.WND_WIDTH;
                float y = event.getY()/TestView.WND_HEIGHT;
                Log.i("zim32", String.valueOf(x));
                GradientDrawable drawable = (GradientDrawable)test_view.getBackground();
                drawable.setGradientCenter(x, y);
                test_view.invalidate();
                return true;
            }
        });
    }
}

Но центр градиента остается в центральной позиции ... без какого-либо движения .. Что может быть не так?Спасибо за ваши ответы

1 Ответ

0 голосов
/ 02 января 2012

Попробуйте позвонить view.setBackgroundDrawable(drawable); до того, как это станет недействительным.Похоже, в этом нет необходимости, поскольку вы получаете ссылку на уже установленный фон drawable и задаете для него свойство, но если вы увидите исходный код View.setBackgroundDrawable(drawable);, вы увидите, что он также устанавливает некоторые флагии так далее.Для справки: grepcode

Еще одна вещь, которую стоит упомянуть - вы устанавливаете начальный фон для рисования где-то еще, не так ли?Потому что, если вы не устанавливаете начальный фон для рисования где-то еще, test_view.getBackground() вернет null, и вы в основном ничего не делаете.:)

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