【androidjava】javaでhtmlタグを操作する

asaba 著者:asaba

【androidjava】javaでhtmlタグを操作する

javaでは、Html.fromHtml(何かの変数)メソッドを使うことでhtmlタグでTextView

を操作することが出来ます。

部分的に強調したいところがあったりTextViewをリンクとして

使いたくなった時に色を変えたい時が主な用途です。

まず、sring.xmlで文字を追加します。

 

<pre><string name="sample" translatable="false">※[&lt;font color=\"navy\"&gt;%s&lt;/font&gt;]</string></pre>

 

stringタグを作った後に色を変えたい箇所を&ltと&gtで囲みます。囲まれている

$sが今回表示したい文字になります。

 

color=\”何かの色\の形式で好きな色に変えることができます。

 

続いてxml↓

 

<pre><TextView
    android:id="@+id/text_sample"
    android:layout_width="150sp"
    android:layout_height="wrap_content"
    android:layout_marginStart="10dp"
    android:layout_marginEnd="20dp"
    android:layout_marginTop="110dp"
    android:textColor="#444444"
    android:background="@drawable/selector"
    android:textSize="16sp"
    android:textStyle="bold" /></pre>

 

後にコード上で文字列を入れるのでテキストには何も設定しません。

ですがこれだけではこのまま表示されてしまうので、次にMainActivityに

実際に文字を入れていきます。

 

まず、String.formatでstring.xmlから文字を抽出しています。第一引数

が形式、第二引数が入れたい文字となっております。

次に、入れたい文字列ですが、ここではhogehogeが先ほどのstring.xmlの%sに入っていきます。

 

最後にsetTextの中でHtml.fromHtml(text)でhtmlタグを使って

 


@InjectView(R.id.text_sample)
TextView sampleText;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_help);
ButterKnife.inject(this);

String text = String.format(getText(R.string.sample).toString(), "hogehoge");
sampleText.setText(Html.fromHtml(text));
}

 

string.xml内の文字列を翻訳して色が変われば無事終了となります。簡単

なコード数行で済むのでhtml経験者ならもっと自在に扱えそう・・・・。

でもcssなしでここまでカスタマイズできるなら上等かなぁと思います。

  • この記事いいね! (0)

著者について

asaba

asaba author

好きなもの:RPG、チョコミント 少しずつ頑張ります。