当前位置:操作系统 > 安卓/Android >>

EditText 在左边加入图片

代码如下:  

    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);

 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,