Установить цвет фигуры, используемой в качестве фона TextView в Android - PullRequest
1 голос
/ 24 ноября 2010

Я использую фигуру, заданную в качестве фона для TextView.Это позволяет мне добавлять закругленные углы и другие эффекты.Форма определяется так:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:topLeftRadius="8dp" />
</shape>

, и я использую ее так:

<TextView
    android:id="@+id/project"
    style="@style/textView"
    android:background="@drawable/project_textview_background"
/>

Теперь мне нужно программно изменить цвет этого TextView в зависимости от некоторых условий.Я не смог этого сделать.

  • Я пытался сделать setBackgroundColor, но это, кажется, перезаписывает фон, который я определил ранее, поэтому он больше не показывает закругленные углы.
  • Я посмотрел на множество других методов API, но ничего не получил

Любая помощь будет очень цениться.Спасибо Есть идеи?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2010

решение было на самом деле установить форму и цвет в коде вместо использования рисованного ресурса. Я использовал PaintDrawable (int color) , который позволяет мне определять любой цвет фона, который я хочу. Затем я использовал setCornerRadoii (float []), чтобы определить закругленные углы, и, наконец, я назначил объект PaintDrawable моему фону textView. Работал как шарм.

0 голосов
/ 24 ноября 2010

Вы можете создать другие фигуры, у которых все еще есть атрибут угла, который вы уже определили.Способ заполнения ячейки с помощью bgcolor написан на следующей веб-странице. (Сплошная) http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

И если упомянутые вами условия зависят от фокуса или нажатия, вам лучше сделать селектор вместо формы.Поиск по ключевому слову "ColorStateList" в справочнике Android.Я хочу оставить адрес, но не могу из-за своей репутации ;;;

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