<font color>
タグなどが使える。
<img>
タグも使える。サイズは解像度に応じて要調整かも知れない。
改行はもちろん<br>
にしておく必要あり。
strings.xmlでの記述は要注意。
例
// 文字列データ
static final String sampleHtml ="色を<font color=\"red\">変える</font>サンプル";
TextView text = (TextView)findViewById(R.id.text1);
text.setText(Html.fromHtml(sampleHtml));
// strings.xml
TextView text2 = (TextView)findViewById(R.id.text2);
String src = getString(R.string.htmlstring);
text2.setText(Html.fromHtml(src));
strings.xml
<string name="htmlstring">リソース文字列は<font color="green">タグ記号に要注意</font>。</string>
img
タグの場合、srcに指定したものに応じた処理を書く必要がある(ImageGetterインターフェースを実装すする)。
R.drawableのidを指定することももちろんできる。
ic_launcher.pngを埋め込む場合のstrings.xml
<string name="imgstring">イメージは<img src="ic_launcher" >ファイル名をそのままでおk</string>
使用例:imgタグの場合
// htmlタグを解析してイメージを返すために必要。
ImageGetterImpl imageGetter = new ImageGetterImpl(getApplicationContext());
// img.png
TextView text3 = (TextView)findViewById(R.id.text3);
String html = getResources().getString(R.string.imgstring);
Spanned message = Html.fromHtml(html, imageGetter, null);
text3.setText(message);
ImageGetterImpl.java
/**
* htmlタグを解析してイメージを返せるようにする
* @author S.Kamba
*
*/
public class ImageGetterImpl implements ImageGetter {
Context mContext = null;
public ImageGetterImpl(Context context){
mContext = context;
}
@Override
public Drawable getDrawable(String source) {
// sourceにimgタグの src=""で指定した内容が渡される
Resources res = mContext.getResources();
// 画像のリソースIDを取得
int id = res.getIdentifier(source, "drawable", mContext.getPackageName());
// リソースIDから Drawable のインスタンスを取得
Drawable d = res.getDrawable(id);
// 取得した元画像のサイズを取得し、必要なら、表示画像のサイズを調整する
int w = d.getIntrinsicWidth();
int h = d.getIntrinsicHeight();
if(source.equals("ic_launcher")){
w = (int)(w*0.58f);
h = (int)(h*0.58f);
}
d.setBounds(0, 0, w, h);
return d;
}
}
aタグのリンクに反応させるには、次の一文が必要。
textview.setMovementMethod(LinkMovementMethod.getInstance());