私は、Bluetooth経由で送受信されたメッセージを表示するような端末のような表示を作成しています。受信したメッセージは青で、赤で送信されます。ScrollViewのAndroid TextView - 新しい行ごとに異なる色
これまでのところ、scrollView内にtextViewを配置し、.append()methdodを使用してスクロール表示に行を追加しました。
レイアウトは次のようになります。scrollViewにテキストを追加するための
<ScrollView
android:id="@+id/scrollingView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/disconnectButton"
android:layout_alignParentStart="true">
<TextView
android:text="Received and sent txt!!!\n"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollTextView"
android:minLines="11"
android:maxLines="11"/>
</ScrollView>
とコード:
scrollView = (ScrollView) findViewById(R.id.scrollingView);
scrollTextView = (TextView) findViewById(R.id.scrollTextView);
scrollTextView.setGravity(Gravity.BOTTOM); scrollTextView.setTextColor(getResources().getColor(R.color.receivedBTColor));
scrollTextView.append("$"+dataInPrint+"\n");
scrollView.fullScroll(View.FOCUS_DOWN);
問題はラインのそれぞれが異なる色にすることができなければならないということです。 setTextColor()メソッドは、textView全体の色を設定します。これは、scrollViewがオーバーフローするまで上方向に移動する行を一時的に保存する必要があるためです。私はSpannableクラスの使用例を見ましたが、かなり面倒です。
誰でもスクロール可能なカラフルなテキストを作成する方法を提案できますか?このようなもの? Example from Bluetooth terminal app
ありがとうございます!私はHtml.fromHtml()を使用する場合
もう一つは...、この方法は除外するようだ「\ n」はシンボル。私は何をしたのですか、私は基本的にはscrollTextView.append( "\ n");次の行に。これはうまくいきますが、同じHtml.fromHtml()メソッドを使って改行記号を使用する別の方法がありますか?そうでなければ、巨大な感謝!!! – Niklavs
素晴らしい!それは良い知っているちょっとトリック、あなたは少しのHTMLが 'TextView'で必要な時を知らない – Illdapt
はい、HTMLの'
'タグを利用できるはずです。文字列colorEnd = "
"を追加するだけで試してみてください。 – Illdapt