Android -- 编辑框更改样式

1. 效果图

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfIAAABVCAIAAAA9nfFlAAAOtklEQVR4nO2dP3Aa6RmH08XlVRlayi0p6TIqr8xMGrfpkvKaJMrFZ7TGElphSYc5H1r+rVgkIaPEXEAW8iLLuoHMaAbNHTJKRhO4HHa28Ey2UPEVLt4UH15WCNhlhS1y/j3zG428WpYFzzy8vN+33/7s5evnZ/qLM/3F6auDRqdyy/fPX/z2v7d+/S8xKIoBUQyK3V8Cll8Cg/4UtGzp2xNBEATpS/CyRQNXfg8OcmlQFIPiL0fys5evnzf/c8jz8vXzntZv/DUjCIIgg2Kj9Uan0uhUTl8dcLND6wiCIFMeG62fvjo4fXVg1uzQOoIgyJTHXuvWPgy0jiAIMuWxbcIcnL56fvrq+cvXhy9fQ+sIgiDTHnutf/9j5fsfK9zv0DqCIMiUx0br3Olc643Ogal1AgAAMJU41Tpvwvzc949LWj+WqHCbYl4EQRDkJlO4TceSI603fjzkOe28OO28uKR1CB1BEGSqUrhtr3Vu89POCy73ntaPpZt/AQiCIEhfjiWn1Tov2HtaR6mOIAgyhSnctuut//u5mUvVuuUo7IINDQAAgEkxXLZWJ9to/bsfDni42e21DgAA4MPgVuuH3/1w+N0PB6edby81Ya5qHQAAwIdnXK1/+12x2tj9+8vd4388q59rg7UOAADgRhlD6395pvxVSz+pKLvfbpZr2w61Tm8JQRAEeU+5ltafHKiF59lvDjeeHKjfHG7Yav3GXy2CIMhHEpda395P5ffTj5+lnxyoTw6zo7V+4y8SQRDko4obrecP1L8cqPkD9a/P1Z1DdYTWBzwlAACAyTLE7GNoPVdZzz1TtjRlu6LkKopTrQMAAHh/XEfr6+WEupdYLyfWd+X0U3mY1uF0AAD4oFw2+xhaz+wn18uJ9XIitbuW2l2D1gEAYCpwrfV4cS1RkhMlObkbT5QcVOsAAAA+DO60ntyNp54mzJ/QOgAATAvutJ4ux9N7yeRunAdaBwCAacGd1lN7slmtp54*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" alt="" />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeUAAABJCAIAAACM+6kUAAAGF0lEQVR4nO3dy24TVxzH8dnViy5YVWx5g+YN/so7dJNH6BtUUS/cA3EgVLQIc08TrgWpaQPUlVNSS5OFJSMValpZnail7SyQOosszsKL04XNzJmxfTxOTOaUfD/6rcCEsPnq6DCxvdY/G6Wp39778N/SB78fO3KMMcaYgxMRj14zxpj7ExHvl7/pNWOMuT4R8Z7/9YReM8aY4xMR79nLH+NeawCAk3r3Ie9M/ZrqdaOsV2d05RBjjLEitzqjG+Wk189f/pTqNaVmjDGntjrT6/WzP43zdaNc/HfGGGMss0a573zN4Zoxxhzc6kzf+dr4bbWthg4AMCnDY2s2WUS8n/94MrrXAIC9Yel16j6kv9cAgL03sNfNdm1wrwEAhcr2urp5L2evdUczxhh7Qxvd6283bo3sdeH/DMYY2yez9fqbjZv2Xhf+3TPG2L7a0F4/2Fix9HrA1wIATNaQZGd7fXd9KW+vAQBvzshe33h8eVivi4q153l7+vcBgCPSyc72+vqjS/QaAJxg7/XVhznO13uLXgPYvyy9vvboCr0GAFfQawD4f7DdXz++Sq8BYMfUtgrDMNgKugvDUG2rnX85S6+/+uEGvQaAcSmlgnbgb/q19Vr//E0/aAdKjR9uS6+XqtfpNQCMJdgKBma6f8FWMN6XtvQ61/PXe4teA3BXRzcbzTjHzafNMAzNc7RSKgzD5lPjNY3mGCG13YdUJ3d/3dHRq6j1olVbr0Wvoh2/mF4DcJQR62ajGUW20EVRZL44b0tt5+vqbp8PaTaaU+9Pld4teQa/7u/4xfQagJvi/rZetHL1t6O7p9JesvOw9Hq5Ztxff3koXv5er62ueX2G9TrPi+k1AAfFd9atF62x/mCc7Fx32WavjSaLiLf0/ZVd9lop1XuK5WW49nDN3us8L6bXAFyjlBp4s9H93MTsqzs69UifcYsy+okRS69T/9+4o16bgnZg73WeF9NrAK4J2r3DtXlnHYZhbb3m132zzmpb+XW/tl4LwzD+xSiKekfs9qgjtu18/XC35+vMP4leA3j7dJ+zbj5N7qDVtkqetn6d7DjWvdO00fHuEyP+5qg2Wnq98h29BgCbOM3mkVl3tPnDMn7dD8PQjLVf983bj+5hPBPxASy9Xl69RK8BwCJJbfr2OXOaTv18Y/qSRBs34Kno97P0+uLSQtLrzw/Fo9cA0BU/GdL/WwOT3R/rrlxPiZi9NposIt75S6eMXh+MR68BoMvSa22cvuMNO0GP3+ukySLiXbxSptcAYFHI+Vp3dLbX11fO0WsAsCjk/npAr5e/vkCvAcBi4PMhSqnM0yD9z4eY/Yyjb3/XEVuvL68sxr1WZw4mo9cA8Nqknr8edgmeMD9y12iyiHgLF48O7HWq8bnRawBvpUn9fGPr2aj3HrH0ulyh1wAwguX9Q/ojqZTKXF7H7x8y4vJaW3t94c5Zeg0AI+3+/flyvaWqpddz144kvT59MB69BoCM3bz/9bCH/Pr/SNJro8ki4h29/Am9BoBcdvr5MrluQl7/FUN7fWrpmNHrA/HoNQAMMP7nN/p1f8QzfOmvb/Q6abKIeOfulifY64mg1wAcl/Pz0f26H2wF41XU0uvyykl6DQDjUkoF7cB8S9VUqTfHL3WXpdfHr36W9PrEgXj0GgDyUNsqDMPuJx0GW0H0Ksr1/4rDmL02miwi3olrh+k1ALjC0uv55RP0GgBcYel16vkQeg0AxbL0eu7GUXoNAK6w3l9/mvT6yIF49BoACmD22mhy93x92LVeA8D+Zen1mTtzRq9L8eg1ABQg1eukySLiLd47XaLXAOAIS68Xbp+k1wDgCkuv528eT3r9cSkevQaAApi9NposIt7Z26fpNQC4wtLr8spJeg0ArrD0+sytU/QaAFxh6fXinXl6DQCu2O35mmQDwB7o5L+/rkybv80YY8yJVaZFxFu4ORf3Wldn1UclxhhjTk1XZ7P3IVprVZku/DtjjDGWrDKtte593q7Za621rs5SbcYYK36VaV2d7YY5e39d0AU7AGCE7M83Fv39AAAGExHviweL9BoAHCci3vn7Z+k1ADhORP4DAOGlVPq1wwUAAAAASUVORK5CYII=" alt="" />

2. 实现代码

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" > <EditText
android:id="@+id/txtSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入"/> </LinearLayout>

MainActivity.java

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private Drawable mIconSearchDefault; // 搜索文本框默认图标
private Drawable mIconSearchClear; // 搜索文本框清除文本内容图标
private EditText mSearchView = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 得到资源里面的图标文件
final Resources res = getResources();
// 默认的图标
mIconSearchDefault = res.getDrawable(R.drawable.txt_search_default);
// 清除图标
mIconSearchClear = res.getDrawable(R.drawable.txt_search_clear); mSearchView = (EditText) findViewById(R.id.txtSearch);
mSearchView.addTextChangedListener(tbxSearch_TextChanged);
mSearchView.setOnTouchListener(txtSearch_OnTouch); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} /**
* 判断输入框中是否有数据,然后显示相应的图标文件
*/
private TextWatcher tbxSearch_TextChanged = new TextWatcher() { // 缓存上一次文本框内是否为空
private boolean isnull = true; @Override
public void afterTextChanged(Editable s) {
if (TextUtils.isEmpty(s)) {
if (!isnull) {
mSearchView.setCompoundDrawablesWithIntrinsicBounds(null,
null, mIconSearchDefault, null);
isnull = true;
}
} else {
if (isnull) {
mSearchView.setCompoundDrawablesWithIntrinsicBounds(null,
null, mIconSearchClear, null);
isnull = false;
}
}
} @Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
} /**
* 随着文本框内容改变动态改变列表内容
*/
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) { }
}; // 当清除图标被点击的时候的处理事件
private OnTouchListener txtSearch_OnTouch = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
int curX = (int) event.getX();
if (curX > v.getWidth() - 38
&& !TextUtils.isEmpty(mSearchView.getText())) {
mSearchView.setText("");
int cacheInputType = mSearchView.getInputType();// backup
// the input
// type
mSearchView.setInputType(InputType.TYPE_NULL);// disable
// soft
// input
mSearchView.onTouchEvent(event);// call native handler
mSearchView.setInputType(cacheInputType);// restore input
Toast toast = Toast.makeText(MainActivity.this, "你好啊", Toast.LENGTH_SHORT);
toast.show(); // type
return true;// consume touch even }
break;
}
return false;
}
}; }

3. 使用的图片

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAbCAMAAABY1h8eAAAAM1BMVEW/v7+/v7+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+r8GajAAAAEXRSTlMAMGCAACCP3/8Qz79An++vUBjdUD8AAADgSURBVCjPfZLhAsMQDITboI5ie/+nXY62bKvmFz7JnciyXLGKMUZW2+MkbvNo4Tf3Aw3GMCMMUU92cawgu65juCBZTEcNa1M8Kfe6yWG5oA1Z6QFVL3fPtV5uuqrCInyJa/p8C4Uc4QZQT1BWXikQpQnYCD12HqpHpcoA5u7wCvVUWI09KEJW2AThHS2HKlZzUPNpSZ2IpdejtWVg1tJvh6wBVDv/8C7zUfNw60p3G5rb9PBOPHXo9dXb9jGuSsZqe/or8eE/q+fJJLRe3M9QSdPpKyZM5/ZEHZ4T/x4n/gPXSQ3LnpwLngAAAABJRU5ErkJggg==" alt="" />  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAABgFBMVEX////3/P+z6f+T4f941v+L3v+r5P/s+f/x+v8guv8Ytf8Ysv8dtf9hzv/X8v/K7P8tu/8twv8wxv8xzv8vyf8esP+e3/8hsv8t1P8dxP8ttv8otP8brP+W2v8usv86y/+F3/+l5/9Q0P8kw//G7f92zP8bpP78/v8gqf9Dtv8lpf4euP++5f8doPpOw/8fn/cxrv9+zf+O0/8cm/QdmPFau/8imvTF5f8ppP1JtP+G1P8gl+4yqv+43/zm9P8hmfMooPdWvf80qf9+xfmy3f4kmvIgk+ktnvbr9v9Eqfgsofs1pv6z4/9Pqe84qv8kl/JYsvj1+/95w/0ypv80tP/J5fwqmO84p/9Zs/wqqv+h2v8umvMrmfQ5pf45ovo3oPc5pf0umvQllO8mmPUznvc+sf9qwv8vl/A6pPw5oPY5nfI+rf8/uv88qf83ofo8tf8tpv8xk+ctlOw2rv+X0f8mid46mu47pP8uo/+d0/+Dxv9Ytf9wwP8tnv8+pf8xof/rr60gAAAAgHRSTlMA/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1AKuiAAAAFRSURBVCjPY2CAA0YmZhZWNnYGNMDBwsnFzcPNzcXLhyLOL8AtKCgkLCIoIMojhiwuKi4gJCEpKSkhLCUtIwsXZ5cTlRKUlFdQZFaSVAbKqMAkVNWkpJVZ1UFMJiFxOQ1Ndah7tKTkRJmhilS05eTU+CFsHV05LT11mHYWfQNdQwjTyNjABOEUPhMDLVMI09DMwMQc4SMTAwtLCNPK2sbEFi5hZ2/j4Ahhstk7mTnDJVzsnVxVoWrcnJzcPWBB5unlreUD5fi6+/kHBELYQf7ewSEcEHZoWHh4uL+nrQdDoHmEf7hfZBRUPDomNi4+ITEpOSXZPyYuNTIN4qfQ9OiMzKzsHM3cjLyM3NT8gjSIoXaFRXFZWeEF2QU2+fn5xQV+UHMYSkrLysrKKyrVdaqqq6trXDhgzq6sravLrahkwAAesfXe9VjEgZZUVZkzUAEAAFLaP89l9e6lAAAAAElFTkSuQmCC" alt="" />

4.说明

在农民伯伯的博客中看到,因为找不到网址 ,特此说明一下

上一篇:为什么大公司一定要使用DevOps?


下一篇:Android实现EditText插入表情、超链接等格式