2010-11-23 10 views
1

Drawableとして定義されたシェイプをTextViewの背景として使用しています。これにより、丸みを帯びたコーナーやその他の効果を追加することができます。 形状は次のように定義されていますAndroidで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メソッドの束に見えたが、どこにも

任意の助けを得ていないが非常に高く評価されるだろう。ありがとうございます アイデア?

+0

コードを投稿してください。 –

答えて

2

解決策は、実際に描画可能なリソースを使用する代わりに、コードの形と色を設定することでした。 PaintDrawable(int color)を使用して、私が望む背景色を定義することができます。次に、setCornerRadoii(float [])を使用して角を定義し、最後にPaintDrawableオブジェクトをtextViewバックグラウンドに割り当てました。チャーミーのように働いた。

0

すでに定義したコーナー属性を持つ他の図形を作成することができます。 BGCOLORでセルを埋めるための方法は、次のウェブページに書かれている。(固体) http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

そして、あなたが言及した条件は、フォーカスやプレスに依存する場合、あなたの代わりに形状のセレクタを作成した方が良いと思います。アンドロイド参照のキーワード "ColorStateList"で検索してください。私は住所を残したいが、私の評判のせいでできない。

+0

私はそれが少し奇妙だと知っていますが、私は12種類の色があります。私は12種類の異なる形を作るのを避けたかったのです。 ColorStateListをもう一度見てみましょう。ありがとう –

+0

私はViewState(有効、選択、等...)に依存しないので、ColorStateListは使用できません。カスタム状態を定義する方法がない限り、私はどのようにわからないのですか –

+0

カスタムウィジェットの作成方法については、textviewを派生させますか? – sonee

関連する問題