我EditText使用以下XML 在窗口小部件中添加了文本右侧的图像:
<EditText
android:id="@+id/txtsearch"
...
android:layout_gravity="center_vertical"
android:background="@layout/shape"
android:hint="Enter place,city,state"
android:drawableRight="@drawable/cross" />
Run Code Online (Sandbox Code Playgroud)
但我想清除EditText点击嵌入图像的时间.我怎样才能做到这一点?
android android-widget android-edittext compound-drawables android-studio
根据我的代码运行新的Lint工具.它提出了很多好的建议,但这个我无法理解.
此标签及其子代可以替换为一个和复合drawable
问题:检查当前节点是否可以使用复合drawables替换为TextView.
包含ImageView和TextView的LinearLayout可以作为复合drawable更有效地处理
这是我的布局
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/upImage"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"
android:src="@drawable/up_count_big">
</ImageView>
<TextView
android:id="@+id/LikeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginBottom="1dp"
android:textColor="@color/gray"
android:textSize="16sp"
android:layout_gravity="center_vertical">
</TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,有人能提供一个如何制作复合可绘制的具体例子吗?
android textview android-layout android-linearlayout compound-drawables
当我在textview或imageview中使用VectorDrawable资源时,使用"android:DrawableRight"/"android:DrawableEnd"/"android:DrawableStart"/"android:DrawableLeft"时会出现运行时崩溃.
该应用程序将编译正常,没有任何警告.
我在用
我发现的是,我可以通过编程方式在Java中分配SVG,而不会像这样崩溃.
TextView tv = (TextView) findViewById(R.id.textView);
tv.setCompoundDrawablesWithIntrinsicBounds(null,null, getResources().getDrawable(R.drawable.ic_accessible_white_36px),null);
Run Code Online (Sandbox Code Playgroud)
(我怀疑这是23.2的支持库错误.)
但是可以将drawableRight等用于SVG资产吗?
这是我的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="au.com.angryitguy.testsvg.MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_accessible_white_36px"
android:background="@color/colorPrimary"
android:textColor="#FFFFFF"
android:textSize="22sp"
android:text="Hello World!"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的活动
package au.com.angryitguy.testsvg;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Run Code Online (Sandbox Code Playgroud)
以下是Google材料设计网站中未经修改的VectorDrawable资产.
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:pathData="M12,4m-2,0a2,2 …Run Code Online (Sandbox Code Playgroud) java android android-layout compound-drawables android-vectordrawable
如何使按钮上的可绘制更小?图标太大,实际上高于按钮.这是我正在使用的代码:
<Button
android:background="@drawable/red_button"
android:drawableLeft="@drawable/s_vit"
android:id="@+id/ButtonTest"
android:gravity="left|center_vertical"
android:text="S-SERIES CALCULATOR"
android:textColor="@android:color/white"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"
android:drawablePadding="10dp">
</Button>
Run Code Online (Sandbox Code Playgroud)
鞋面是它应该看起来的样子,它现在看起来越低.

我尝试了这个,但没有显示图像.:-(
Resources res = getResources();
ScaleDrawable sd = new ScaleDrawable(res.getDrawable(R.drawable.s_vit), 0, 10f, 10f);
Button btn = (Button) findViewById(R.id.ButtonTest);
btn.setCompoundDrawables(sd.getDrawable(), null, null, null);
Run Code Online (Sandbox Code Playgroud) 我有一个ListView人口ArrayAdapter.对于项目,我只使用一个TextView布局.我想要一些行设置复合drawables.
问题:有没有办法为包含的实际文本设置填充,TextView以便复合drawables也不会得到填充?其他解决方案是锁定文本的宽度.我需要添加ImageViews到我的布局吗?
提前致谢.
我看不到设置宽度的任何标签
在这里我设置textview高度,如果我设置宽度它将无法正常工作.
<TextView
android:id="@+id/nome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:drawableLeft="@drawable/ic_launcher"
android:height="50dp" />
Run Code Online (Sandbox Code Playgroud)
我怎样才能在xml中设置它?可能吗?
这个问题在某种程度上延续了我的上一个问题.
我现在的问题几乎是一样的,除了不是在不同视图中分离图像和文本(即ImageView和TextView),我学会了我可以使用该属性android:drawableLeft为我的文本设置一个图像(建议指向我由Eclipse在LinearLayout行上带有警告图标).
我认为唯一的区别是,而不是与设置ImageView的setImageResource()方法,我想简单地设置的TextView的drawableLeft与归因setCompoundDrawablesWithIntrinsicBounds()方法.相反,当我做出改变时,我回到了原来的问题:文本与视图的上边缘而不是中心对齐.
这就是我的TextView的样子:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/account_login"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/pm_gmail"
android:drawablePadding="8dp"
android:text="example@gmail.com"
android:paddingLeft="16dp"
android:layout_gravity="left|center_vertical" />
<View
android:layout_width="fill_parent"
android:layout_height="1dip"
android:layout_centerVertical="true"
android:layout_below="@id/account_login"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="5dp"
android:background="#DDDDDD" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
第二个View只是一个分隔符.
...这就是设置上述属性后布局的样子:(我没有足够的声誉来发布图片,所以这里是它的链接)
(为了清楚起见,这只是一个静态示例.我的文本和图像都是在运行时在代码中动态设置的).
任何帮助是极大的赞赏.
我无法弄清楚如何在TextView中设置文本的对齐方式及其复合可绘制(小于文本).似乎默认对齐是中心,但我需要通过边缘对齐它们.
PS:android:gravity如果复合可绘制大于文本,则效果很好,但如果较小则不然.
我想事先知道视图的大小。我是这样测量它的大小的。
public static int[] measureSize(ViewGroup parent, int layoutId)
{
View view = LayoutInflater.from(parent.getContext()).inflate(layoutId, parent, false);
final int spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
view.measure(spec, spec);
final int width = view.getMeasuredWidth(); // ? 0, not include compound drawable size and relative padding. WHY
final int height = view.getMeasuredHeight();
return new int[]{width, height};
}
Run Code Online (Sandbox Code Playgroud)
这是布局文件:
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableStart="?android:listChoiceIndicatorSingle"
android:drawablePadding="20dp"/>
Run Code Online (Sandbox Code Playgroud)
问题:测量的视图宽度始终不包括复合可绘制尺寸及其相关的填充。如果我不设置文本,则测量的宽度始终为0。如果设置非空值,则宽度仅适用于文本。为什么?我怎样才能得到正确的尺寸?
提前致谢。
我们可以为textview设置复合drawables,如下所示使用drawableLeft 或者setCompundDrawables使用它只能将drawable放在left/right/top/bottom.But我想把drawables只放在Textview的左上角和右上角.我怎样才能做到这一点 ?