Пользовательская кнопка из 9 патчей без XML - PullRequest
1 голос
/ 02 января 2012

Я хотел бы создать пользовательскую кнопку Android из 9 патчей, но без использования XML. Я знаю, это звучит глупо, но причина в том, что по какой-то причине моя IDE (NetBeans) запутывает весь XML вне всякого сомнения. R.java не генерируется наполовину (исправления не помогли мне), и я получаю случайные ошибки, даже если я просто копирую и вставляю XML из учебников.

Вот как я планирую создать кнопку:

  1. Кнопка имеет setBackgroundDrawable() метод
  2. Мне нужно снабдить этот метод с StateListDrawable
  3. Что мне нужно собрать из NinePatchDrawables

Итак, сначала мне нужно создать 9 патчей, затем StateListDrawable из них и просто передать StateListDrawable в качестве фона для метода setBackgroundDrawable() моей кнопки.

Я не могу запустить 9 патчей, потому что не могу понять, как работают конструкторы.

1 Ответ

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

Разве для вас не имеет смысла тратить свое время на:

  • исправление NetBeans или
  • переключение на другой редактор / IDE?

Попытка разработки Android без XML похожа на попытку летать без крыльев. Это возможно, но ракеты, как правило, терпят крах и сгорают.


Несмотря на это, вам не нужно напрямую работать с NinePatchDrawable, чтобы использовать файлы PNG с девятью патчами. Android справится с этой задачей за вас.

Вместо этого создайте экземпляр StateListDrawable и вызовите addState() для каждого из ваших состояний. Чтобы получить Drawable для штата, используйте getResources().getDrawable(R.drawable.this_is_one_of_your_nine_patch_images) из вашего Activity. Android обнаружит, что это патч из девяти, и сделает все правильно.

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