欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 改变图标原有颜色和搜索框的实例代码

程序员文章站 2023-12-19 19:07:46
图标改变颜色:drawable的变色,让android也能有ios那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了。 搜索框...

图标改变颜色:drawable的变色,让android也能有ios那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了。

搜索框: 一般是edittext实现,本文 实现 textview图片和文字居中,键盘搜索。

来看看效果图:

Android 改变图标原有颜色和搜索框的实例代码

 图标改变颜色:第一个界面的左边(二维码)和右边(更多)两个实现,我放进去的图片是黑色的,显示出来是白色的。         

Android 改变图标原有颜色和搜索框的实例代码

搜索框:第一个界面的图片和文字居中,还可以设置间距,第二个见面搜索设置键盘搜索按钮,点击搜索监听事件,清除内容的图标。

搜索框布局:

<!-- 
   搜索图标设置 左边 
   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 改变图标原有颜色和搜索框的实例代码,希望对大家有所帮助

上一篇:

下一篇: