【Android学习】EditText、TextView左边/顶部图片

原创 2017年05月23日 16:55:37

1,实现

.xml中可以设置TextView(EditText也可以)的图片和文字,如:
通过android:drawablePadding=”8dp”设置图片与控件的间距

<TextView  
    android:drawableTop="@drawable/icon_home"
    android:drawablePadding="8dp" /> 

在.java代码中如何设置这一属性呢?调用自定义函数:

/** 
 * 设置textView顶部图片 
 * @param v 要设置的TextView 
 * @param id_drawable 还要设置的图片 
 */  
private void setDrawableTop(TextView v, int id_drawable){  
    Drawable topDrawable = getResources().getDrawable(id_drawable);    
       topDrawable.setBounds(0, 0, topDrawable.getMinimumWidth(), topDrawable.getMinimumHeight());    
       //void android.widget.TextView.setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)  
       v.setCompoundDrawables(null, topDrawable, null, null);    
}  

2,点击事件

控件(et_password)绑定点击事件:

et_password.setOnTouchListener(this);

点击事件处理:
点击图片切换决定et_password显示的密码是明文还是密文。


    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (v.getId()) {
        case R.id.act_login_et_password:

            // et.getCompoundDrawables()得到一个长度为4的数组,分别表示左右上下四张图片
            Drawable drawable = et_password.getCompoundDrawables()[2];
            //如果右边没有图片,不再处理
            if (drawable == null)
                return false;
            //如果不是按下事件,不再处理
            if (event.getAction() != MotionEvent.ACTION_UP)
                return false;
            if (event.getX() > et_password.getWidth()
                    - et_password.getPaddingRight()
                    - drawable.getIntrinsicWidth()){

                isChecked = !isChecked;

                if(isChecked){

                    et_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
                }else{

                    et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                }
            }
            break;

        default:
            break;
        }

        return false;
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android 文件读写和文件夹创建和删除总结

转载请标明出处:http://blog.csdn.net/htwhtw123/article/details/72493301#t4 谷歌的官网讲解:保存文件 这里提供Android 文件操作,具...

android 发送邮件(android自带email和javamail)均可发送带有多个附件

1.android自带的mail package com.email.sendmail; import java.io.File; import java.util.ArrayList; impo...

android TextView、EditText对部分内容设置颜色、字体、超链接、图片

//android TextView、EditText对部分内容设置颜色、字体、超链接、图片; //这里是以一个TextView为例子,EditText的设置方法和TextView一样 ...

android之在EditText、TextView中添加表情图片

由于用户交互的需要,要求在EditText输入表情图片,在Textview予以显示。下面给出一个例子作为说明。 1、布局文件 ...

android TextView和EditText中显示图片

EditText(TextView同样处理)。  添加图片主要用SpannableString和ImageSpan类: Drawable drawable = getResources().get...

Android之TextView、EditText控件显示表情图片

本来该篇博文

Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等

下文来自:http://www.cnblogs.com/playing/archive/2011/03/18/1988182.html --------------------------------...

Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等

 EditText:   通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢?  记得and...

Android:TextView与EditText中插入表情图片

Android:TextView与EditText中插入表情图片

自定义左边含有图片的EditText

自定义EditText,当文字输入改变图片package com.android.drawableedittext;import android.content.Context; import and...
  • Adomner
  • Adomner
  • 2016年08月15日 21:21
  • 1563
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Android学习】EditText、TextView左边/顶部图片
举报原因:
原因补充:

(最多只允许输入30个字)