繁体   English   中英

EditText leftView图像符合EditText Android的大小

[英]EditText leftView image fit the size of the EditText Android

我想在EditText放置一个Icon,所以我喜欢这样:

android:drawableLeft="@drawable/search_icon"

问题是图像比EditTex大,因此EditText变大以适应图像大小。 我想要的是相反的:图像应调整大小以适应EditText高度,是否可能?

我(拼命地)尝试:

android:adjustViewBounds="true"

但显然它不起作用。

有没有办法这样做?

尝试

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#dd80aa"
android:orientation="vertical">

<RelativeLayout
    android:layout_width="363dp"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter text here"
        android:marginLeft="50dp"/>

    <ImageView
        android:layout_width="wrap_contenta"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_gravity="right"
        android:src="@android:drawable/ic_menu_search"/>

</RelativeLayout>


</LinearLayout>

您可以通过修改编辑文本的高度来完成此操作。

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:ems="10"
    android:drawableLeft="@drawable/beautiful"
    android:inputType="textPersonName" >

    <requestFocus />

</EditText>

你可以使用下面的代码来调整大小

Drawable d = imageView.getDrawable();
    Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
    byte[] ba;
    do {
        ByteArrayOutputStream bao = new ByteArrayOutputStream();

        Log.e("BEFORE REDUCING",
                bitmap.getHeight() + " " + bitmap.getWidth() + " "
                        + bitmap.getRowBytes() * bitmap.getHeight());

        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bao);
        Log.e("After REDUCING",
                bitmap.getHeight() + " " + bitmap.getWidth() + " "
                        + bitmap.getRowBytes() * bitmap.getHeight());
        ba = bao.toByteArray();
        if ((ba.length / 1024) >= 650) {
            bitmap = Bitmap.createScaledBitmap(bitmap,
                    (int) (bitmap.getWidth() * 0.95),
                    (int) (bitmap.getHeight() * 0.95), true);

        }

        Log.e("BYTE LENGTH", "" + ba.length / 1024);

    } while ((ba.length / 1024) >= 650);

你可以在RelativeLayout中包装,在左边设置一个带有layout_height match_parrent的ImageView

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM