項目的個人基本信息UI界面效果圖如下,有一個紅色的*號,并且跟它挨著的文字顏色不一樣。簡友們,你們是怎么實現的呢?我這里主要介紹一種有Html渲染的方式
圖片.png
一開始,我測試過用一個TextView來單獨裝載符合,發現如果需求改顏色的時候那所有的TextView都需要改一遍顏色,接著測試了用一個TextView把符合和對應的文字裝載在一起,但是發現*符號的高度不好控制,最后覺得用Html渲染的方式最佳。不多說了,開始正文內容。
1、Xml布局(只選取對應的部分)
這里的*符號和文字其實也是公用一個TextView
<LinearLayout
style="@style/style_match_line_layout"
android:layout_marginTop="10dp" >
<!--主要看這個TextView-->
<TextView
android:id="@+id/tv_nation"
style="@style/style_job_textview_text_title"
tools:text="*民族"
android:text="@string/tip_nation" />
<RelativeLayout
android:id="@+id/view_nation"
style="@style/style_job_textview_text_message"
android:clickable="true" >
<EditText
android:id="@+id/et_nation"
style="@style/style_editext"
android:hint="@string/tip_please_select" />
<ImageView style="@style/style_editext_image_arrow" />
</RelativeLayout>
</LinearLayout>
2、創建對應String資源
這里可以單獨設置*符號和文字的顏色、加粗等操作
<string name="tip_xinghao_nation"><Data><![CDATA[<font color="#e60012"> *</font><font color="#189dde">民族 : </font>]]></Data></string>
3、java代碼中實現渲染
tvNation.setText(Html.fromHtml(getString(R.string.tip_xinghao_nation)));
到這里就可以實現效果圖里面的效果了,如果更改*符號和文字顏色和大小的時候,統一在String資源哪里更改就可以了。
如果簡友們有更好的實現方法,記得留言跟我說一下喔!謝謝!!