Android 如何在EditText 中嵌入默认图片和文字?

知信行 2015-01-26 09:29:11


如图,淘宝中的EditText 中有嵌入的默认图标和文字,如何实现,求大神指教?
...全文
20897 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
逆转星河 2015-09-16
  • 打赏
  • 举报
回复
drawableLeft不能让图片居中,在代码里给EditText设置hint,用setHint()方法;括号里传入一个富文本spanned对象;spanned插入图片文字的写法可以上网上搜搜。
AnOldGun 2015-09-15
  • 打赏
  • 举报
回复
[quote=引用 10 楼 HMYANG314 的回复:] 我的解决方法: 布局:
<RelativeLayout
        android:id="@+id/layout_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FF5000"
        android:focusable="true"
        android:focusableInTouchMode="true" >

        <LinearLayout
            android:id="@+id/layout_default"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/iv_default"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/search_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="搜索" />
        </LinearLayout>


        <EditText
            android:id="@+id/et_search"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </RelativeLayout>
Java代码:
  mEtSearch = (EditText) findViewById(R.id.et_search);
        mLayoutDefaultText = (LinearLayout) findViewById(R.id.layout_default);
        // editText 离开监听
        mEtSearch.setOnFocusChangeListener(new OnFocusChangeListener() {
            
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // hasFocus 为false时表示点击了别的控件,离开当前editText控件
                if (!hasFocus) {
                    if ("".equals(mEtSearch.getText().toString())) {
                        mLayoutDefaultText.setVisibility(View.VISIBLE);
                    }   
                }
                else {
                    mLayoutDefaultText.setVisibility(View.GONE);
                }                
            }
        });
[/quot 验证可用
yuhang_ 2015-07-08
  • 打赏
  • 举报
回复
我用的clearEditText
Leon_He2014 2015-07-06
  • 打赏
  • 举报
回复
如果要获取焦点之后消失,则设置EditText的hint属性为 带图片的html。 如果获取焦点之后不消失,则可以设置EditText的Drawableleft EditText中设置html可以参考 http://bbs.9ria.com/thread-200558-1-1.html
ylineyline 2015-07-06
  • 打赏
  • 举报
回复
android:drawableLeft="@drawable/search" 这一句就好
知信行 2015-01-26
  • 打赏
  • 举报
回复
我的解决方法: 布局:
<RelativeLayout
        android:id="@+id/layout_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FF5000"
        android:focusable="true"
        android:focusableInTouchMode="true" >

        <LinearLayout
            android:id="@+id/layout_default"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/iv_default"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/search_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="搜索" />
        </LinearLayout>


        <EditText
            android:id="@+id/et_search"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </RelativeLayout>
Java代码:
  mEtSearch = (EditText) findViewById(R.id.et_search);
        mLayoutDefaultText = (LinearLayout) findViewById(R.id.layout_default);
        // editText 离开监听
        mEtSearch.setOnFocusChangeListener(new OnFocusChangeListener() {
            
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // hasFocus 为false时表示点击了别的控件,离开当前editText控件
                if (!hasFocus) {
                    if ("".equals(mEtSearch.getText().toString())) {
                        mLayoutDefaultText.setVisibility(View.VISIBLE);
                    }   
                }
                else {
                    mLayoutDefaultText.setVisibility(View.GONE);
                }                
            }
        });
ESC尛蜜蜂 2015-01-26
  • 打赏
  • 举报
回复
引用 8 楼 HMYANG314 的回复:
[quote=引用 6 楼 a511341250 的回复:] Lz红圈里的其实是一个relativelayout里面一个imageview和一个editview,imageview在editview左边,LZ把relativelayout的background图片误以为他是一个editview
ImageView 显然不是在EditText 左边嘛,要用relativelayout倒是对的。不过我已经解决了[/quote] LZ你在4楼的回答,给了我提醒,的确是你的这个思路,我以为搜索这个图片一直在的
知信行 2015-01-26
  • 打赏
  • 举报
回复
引用 6 楼 a511341250 的回复:
Lz红圈里的其实是一个relativelayout里面一个imageview和一个editview,imageview在editview左边,LZ把relativelayout的background图片误以为他是一个editview
ImageView 显然不是在EditText 左边嘛,要用relativelayout倒是对的。不过我已经解决了
ESC尛蜜蜂 2015-01-26
  • 打赏
  • 举报
回复
引用 6 楼 a511341250 的回复:
Lz红圈里的其实是一个relativelayout里面一个imageview和一个editview,imageview在editview左边,LZ把relativelayout的background图片误以为他是一个editview
edittext
ESC尛蜜蜂 2015-01-26
  • 打赏
  • 举报
回复
Lz红圈里的其实是一个relativelayout里面一个imageview和一个editview,imageview在editview左边,LZ把relativelayout的background图片误以为他是一个editview
知信行 2015-01-26
  • 打赏
  • 举报
回复
引用 1 楼 heaimnmn 的回复:
android:hint
你这个只能放文字
知信行 2015-01-26
  • 打赏
  • 举报
回复
我找到了一个方法,默认图片和文字布局与EditText 布局重叠,对EditText进行监听,当EditText选中时,默认布局GONE,否则,VISIBALE http://bbs.csdn.net/topics/390362533
sh1tge 2015-01-26
  • 打赏
  • 举报
回复
http://blog.csdn.net/chengyingzhilian/article/details/7291565 EditText 也有个属性可以直接放图片在里面的
Hare_ 2015-01-26
  • 打赏
  • 举报
回复
SpannableString
哎,真难 2015-01-26
  • 打赏
  • 举报
回复
android:hint

80,489

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧