现在的位置: 首页 > 综合 > 正文

EditText 在左边加入图片

2018年09月18日 ⁄ 综合 ⁄ 共 1313字 ⁄ 字号 评论关闭

代码如下:  

    Bitmap bitmap = mWebView.getFavicon();
    Drawable drawable = new BitmapDrawable(bitmap);
    // edit.setCompoundDrawables(drawable, null, null, null);
    drawable = this.getResources().getDrawable(R.drawable.history);
    edit.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
    edit.setText(cur_url);

   // edit.setMaxLines(1);

 

setCompoundDrawablesWithIntrinsicBounds与setCompoundDrawables的区别:

         setCompoundDrawables 画的drawable的宽高是按drawable.setBound()设置的宽高,所以才有The Drawables must already have had setBounds(Rect) called.
         而setCompoundDrawablesWithIntrinsicBounds是画的drawable的宽高是按drawable固定的宽高,即通过getIntrinsicWidth()与getIntrinsicHeight()获得,所以才有   The Drawables' bounds will be set to their intrinsic bounds.

看下面方法:

public void setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top,
            Drawable right, Drawable bottom) {

        if (left != null) {
            left.setBounds(0, 0, left.getIntrinsicWidth(), left.getIntrinsicHeight());
        }
        if (right != null) {
            right.setBounds(0, 0, right.getIntrinsicWidth(), right.getIntrinsicHeight());
        }
        if (top != null) {
            top.setBounds(0, 0, top.getIntrinsicWidth(), top.getIntrinsicHeight());
        }
        if (bottom != null) {
            bottom.setBounds(0, 0, bottom.getIntrinsicWidth(), bottom.getIntrinsicHeight());
        }
        setCompoundDrawables(left, top, right, bottom);
    }

抱歉!评论已关闭.