我的XML代码是
<EditText android:layout_width="300dp" android:layout_height="40dp"
android:id="@+id/ed_username" android:layout_marginBottom="152dp"
android:hint="@string/username"
android:drawableLeft="@drawable/username_image"
android:textColorHint="@color/skyblue"
android:background="@drawable/edittext_shape"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:ellipsize="start" android:gravity="center|center_horizontal"/>
请先帮助我,谢谢
答案 0 :(得分:3)
你可以通过双向做
1.像这样创建EditText。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:hint="Search text"
android:id="@+id/editText"
android:background="@drawable/edit_text_bottom_border"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:paddingLeft="15dp"
android:drawablePadding="10dp"
android:drawableLeft="@android:drawable/ic_search_category_default"/>
并在你的布局中创建这个文件
<强> edit_text_bottom_border.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="1dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="#000" />
<solid android:color="#00ffffff" />
</shape>
</item>
</layer-list>
2。使RelativeLayout像下面一样:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_below="@+id/editText" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:src="@android:drawable/btn_star_big_on"/>
<EditText
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="46dp"
android:hint="hint"
android:layout_alignParentRight="true" />
<View
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="-7dp"
android:layout_below="@+id/text"
android:background="#000"/>
</RelativeLayout>
生成的输出是:
答案 1 :(得分:2)
您可以在edittext中添加图像作为drawableleft,并在获得焦点时将其删除。
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Username"
android:drawableLeft="@drawable/yourimage" />
获得焦点时将其删除
final EditText et=(EditText) findViewById(R.id.editText1);
et.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean gotfocus) {
// TODO Auto-generated method stub
if(gotfocus){
et.setCompoundDrawables(null, null, null, null);
}
else if(!gotfocus){
if(et.getText().length()==0)
et.setCompoundDrawablesWithIntrinsicBounds(R.drawable.yourimage, 0, 0, 0);
}
}
});
答案 2 :(得分:0)
您可以在java文件中更改如下所示的提示颜色。
editText.setHintTextColor(getResources()的getColor(R.color.Red));
您可以使用以下属性
将drawlable设置为编辑文本android:drawableLeft="@drawable/ic_launcher"
android:drawableTop=""
android:drawableBottom=""
android:drawableStart=""
android:drawableEnd=""
android:drawableRight=""
但遗憾的是你无法在editText的中心设置drawable,就像这样, 或者您可以使用背景图片,其中包含您提示的所有内容 editText.addTextChangedListener ,您可以删除以前应用的背景。
答案 3 :(得分:0)
您可以尝试使用spannable
设置提示,然后您不必更改XML或布局。这是一个带有textView的示例。我从未尝试使用setHint()
,但我认为它的工作方式相同。
TextView tv = (TextView)findViewById(R.id.yourTextView);
SpannableStringBuilder span = new SpannableStringBuilder( " Username" );
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
span.setSpan(new ImageSpan(icon), 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
tv.setText(span, BufferType.SPANNABLE);
答案 4 :(得分:0)
你可以这样做,非常简单
et.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// loadData(et.getText().toString());
// et.setCompoundDrawablesWithIntrinsicBounds(, 0, 0, 0);
et.setCompoundDrawables(null, null, null, null);
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
if (et.getText().length() == 0)
et.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_search_category_default, 0, 0, 0);
}
public void afterTextChanged(Editable s) {
if (et.getText().length() == 0)
et.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_search_category_default, 0, 0, 0);
}
});
以及布局XML
<EditText
android:id="@+id/editTextSearch"
style="@android:style/Widget.Holo.EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:selectAllOnFocus="false"
android:hint="Search"
android:drawableLeft="@android:drawable/ic_search_category_default"
/>
答案 5 :(得分:0)