本博客主要講以下兩點(diǎn)知識(shí)點(diǎn)
圖標(biāo)改變顏色:Drawable的變色,讓Android也能有iOS那么方便的圖片色調(diào)轉(zhuǎn)換螃壤,就像同一個(gè)圖標(biāo)描扯,但是有多個(gè)地方使用,并且顏色不一樣踢械,就可以用這個(gè)方法了酗电。
**搜索框: **一般是EditText實(shí)現(xiàn),本文 實(shí)現(xiàn) TextView圖片和文字居中内列,鍵盤搜索顾瞻。
來看看效果圖:
image
圖標(biāo)改變顏色:第一個(gè)界面的左邊(二維碼)和右邊(更多)兩個(gè)實(shí)現(xiàn),我放進(jìn)去的圖片是黑色的德绿,顯示出來是白色的荷荤。
image
搜索框:第一個(gè)界面的圖片和文字居中,還可以設(shè)置間距移稳,第二個(gè)見面搜索設(shè)置鍵盤搜索按鈕蕴纳,點(diǎn)擊搜索監(jiān)聽事件,清除內(nèi)容的圖標(biāo)个粱。
搜索框布局:
<!--
搜索圖標(biāo)設(shè)置 左邊
android:drawableLeft="@mipmap/icon_search"
android:drawablePadding="5dp" 圖標(biāo)和文字的間距
右邊
android:drawableRight="@mipmap/round_close"
android:paddingRight="8dp"
android:imeOptions="actionSearch" 設(shè)置成搜索按鈕
-->
<EditText
android:id="@+id/search_text"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="30dp"
android:hint="輸入要搜索的商品"
android:background="@drawable/search_gray"
android:layout_marginTop="10dp"
android:layout_marginLeft="9dp"
android:textSize="12sp"
android:drawableLeft="@mipmap/icon_search"
android:paddingLeft="9dp"
android:drawablePadding="5dp"
android:drawableRight="@mipmap/round_close"
android:paddingRight="8dp"
android:imeOptions="actionSearch"
android:maxLines="1"
android:singleLine="true"
/>
鍵盤監(jiān)聽:
searchText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ((actionId == 0 || actionId == 3) && event != null) {
//提示搜索內(nèi)容
Toast.makeText(SearchActivity.this,searchText.getText().toString(),Toast.LENGTH_LONG).show();
//可以跳轉(zhuǎn)搜索頁面
/* Intent intent= new Intent(SearchActivity.this,SearchWebViewActivity.class);
intent.putExtra("model",model);
intent.putExtra("search",searchText.getText().toString());
startActivity(intent);
finish();*/
}
return false;
}
});
首頁布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:minHeight="45dp"
android:orientation="horizontal"
android:gravity="center_vertical"
>
<ImageButton
android:id="@+id/home_left_scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="19dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="11dp"
android:layout_centerVertical="true"
android:background="#00000000"
/>
<com.zhangqie.searchbox.view.DrawableTextView
android:id="@+id/home_search"
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_weight="1"
android:background="@drawable/search_view_background"
android:gravity="center_vertical"
android:maxLines="1"
android:text="輸入搜索相關(guān)內(nèi)容"
android:drawableLeft="@mipmap/icon_search"
android:textSize="12sp"
android:drawablePadding="11dp"
/>
<ImageButton
android:id="@+id/home_right_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:paddingRight="15dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingLeft="15dp"
android:background="#00000000"
/>
</LinearLayout>
自定義DrawableTextView:(文字圖標(biāo)居中)
public class DrawableTextView extends TextView {
public DrawableTextView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public DrawableTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DrawableTextView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
Drawable[] drawables = getCompoundDrawables();
// 得到drawableLeft設(shè)置的drawable對(duì)象
Drawable leftDrawable = drawables[0];
if (leftDrawable != null) {
// 得到leftDrawable的寬度
int leftDrawableWidth = leftDrawable.getIntrinsicWidth();
// 得到drawable與text之間的間距
int drawablePadding = getCompoundDrawablePadding();
// 得到文本的寬度
int textWidth = (int) getPaint().measureText(getText().toString().trim());
int bodyWidth = leftDrawableWidth + drawablePadding + textWidth;
canvas.save();
canvas.translate((getWidth() - bodyWidth) / 2, 0);
}
super.onDraw(canvas);
}
}
看似簡單的效果古毛,其實(shí)還是不簡單的;加油吧都许! 有問題可以掃頭像加新創(chuàng)建的群@我
源碼下載
https://github.com/DickyQie/android-basic-control/tree/search-box