Android 改变图标原有颜色和搜索框的实例代码
程序员文章站
2023-12-19 19:07:46
图标改变颜色:drawable的变色,让android也能有ios那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了。
搜索框...
图标改变颜色:drawable的变色,让android也能有ios那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了。
搜索框: 一般是edittext实现,本文 实现 textview图片和文字居中,键盘搜索。
来看看效果图:
图标改变颜色:第一个界面的左边(二维码)和右边(更多)两个实现,我放进去的图片是黑色的,显示出来是白色的。
搜索框:第一个界面的图片和文字居中,还可以设置间距,第二个见面搜索设置键盘搜索按钮,点击搜索监听事件,清除内容的图标。
搜索框布局:
<!-- 搜索图标设置 左边 android:drawableleft="@mipmap/icon_search" android:drawablepadding="5dp" 图标和文字的间距 右边 android:drawableright="@mipmap/round_close" android:paddingright="8dp" android:imeoptions="actionsearch" 设置成搜索按钮 --> <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" />
键盘监听:
searchtext.setoneditoractionlistener(new textview.oneditoractionlistener() { @override public boolean oneditoraction(textview v, int actionid, keyevent event) { if ((actionid == 0 || actionid == 3) && event != null) { //提示搜索内容 toast.maketext(searchactivity.this,searchtext.gettext().tostring(),toast.length_long).show(); //可以跳转搜索页面 /* 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="输入搜索相关内容" 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:(文字图标居中)
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设置的drawable对象 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); } }
有需要的朋友点击下载源码哦!
https://github.com/dickyqie/android-basic-control/tree/search-box
总结
以上所述是小编给大家介绍的android 改变图标原有颜色和搜索框的实例代码,希望对大家有所帮助