本博客主要讲以下两点知识点
图标改变颜色:Drawable的变色,让Android也能有iOS那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了。
搜索框: 一般是EditText实现,本文 实现 TextView图片和文字居中,键盘搜索。
来看看效果图:
图标改变颜色:第一个界面的左边(二维码)和右边(更多)两个实现,我放进去的图片是黑色的,显示出来是白色的。
搜索框:第一个界面的图片和文字居中,还可以设置间距,第二个见面搜索设置键盘搜索按钮,点击搜索监听事件,清除内容的图标。
搜索框布局:
键盘监听:
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; } });
首页布局:
自定义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); }}
看似简单的效果,其实还是不简单的;加油吧! 有问题可以扫头像加新创建的群@我