先看大眾點評的購買須知
大眾.png
如上圖讯蒲,需求在每條提示語句前加一個小圓點痊土,我剛看到需求就想到用 android:drawableLeft 來做,可做完發(fā)現(xiàn):當TextView內容為單行的時候是沒有問題的墨林,多行的時候赁酝,添加的這個drawableLeft就隨著TextView高度而垂直居中了。
一般解決辦法嵌套布局解決旭等,將(Textview)文字 與(ImageView)小圓點分離酌呆,這肯定是不符合布局優(yōu)化。
前面寫過一篇文章Android 優(yōu)化布局(解決TextView drawableLeft/top/right布局中大小不可控的方法)主要針對TextView drawable屬性的大小進行了控制搔耕,這次在原來的基礎上通過設置drawable. setBounds(int left, int top, int right, int bottom)位置進行了控制達到下面的效果:
123.png
也可以達到圖標大小可控的效果
000.png
下面看看使用方法
step1:Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
step2:Add the dependency
dependencies {
compile 'com.github.ithedan:TextViewDrawable:v1.0'
}
圖標與第一行文字對齊 xml (app:isAliganCenter="false"默認是true)
<com.hedan.textdrawablelibrary.TextViewDrawable
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/dot_blue"
android:drawablePadding="10dp"
android:padding="10dp"
android:text="孩童100-140CM半價隙袁,100CM以下收60元餐費。本團購使用時間為周一到周五的晚餐以及周末的午餐!每天限接待30份\n團購用戶不可同時享受其他優(yōu)惠"
android:textColor="#000000"
app:isAliganCenter="false"
/>
圖標與第一行文字對齊 activity
TextViewDrawable tv4=(TextViewDrawable)findViewById(R.id.text4);
tv4.setText("提供免費WIFI\n停車位收費標準:詳情咨詢商家");
圖標大小 xml
<com.hedan.textdrawablelibrary.TextViewDrawable
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="#eeeeee"
android:drawablePadding="10dp"
android:drawableLeft="@drawable/icon_tab_home_checked"
app:drawableLeftWidth="30dp"
app:drawableLeftHeight="30dp"
android:drawableRight="@drawable/iconfont_youjiantou"
app:drawableRightWidth="15dp"
app:drawableRightHeight="20dp"
android:textColor="#000000"
android:gravity="center_vertical"
android:text="首頁"
android:textSize="20sp"
/>