标签: compound-drawables

处理EditText中drawable上的单击事件

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

229
推荐指数
11
解决办法
12万
查看次数

如何使用复合drawable而不是包含ImageView和TextView的LinearLayout

根据我的代码运行新的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

189
推荐指数
2
解决办法
10万
查看次数

是否可以使用android:DrawableRight在Buttons和TextViews中使用VectorDrawable?

当我在textview或imageview中使用VectorDrawable资源时,使用"android:DrawableRight"/"android:DrawableEnd"/"android:DrawableStart"/"android:DrawableLeft"时会出现运行时崩溃.

该应用程序将编译正常,没有任何警告.

我在用

  • Gradle 1.5
  • 支持库23.2('com.android.support:appcompat-v7:23.2.0')

我发现的是,我可以通过编程方式在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

117
推荐指数
10
解决办法
5万
查看次数

如何缩小按钮上的drawable?

如何使按钮上的可绘制更小?图标太大,实际上高于按钮.这是我正在使用的代码:

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

android scale compound-drawables

82
推荐指数
5
解决办法
10万
查看次数

使用复合drawable在TextView中设置实际文本填充

我有一个ListView人口ArrayAdapter.对于项目,我只使用一个TextView布局.我想要一些行设置复合drawables.

问题:有没有办法为包含的实际文本设置填充,TextView以便复合drawables也不会得到填充?其他解决方案是锁定文本的宽度.我需要添加ImageViews到我的布局吗?

提前致谢.

android padding textview compound-drawables

21
推荐指数
3
解决办法
1万
查看次数

如何在xml中设置复合可绘制texview的高度和宽度?

我看不到设置宽度的任何标签

在这里我设置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中设置它?可能吗?

xml android compound-drawables

18
推荐指数
1
解决办法
8961
查看次数

如何将TextView中的文本与Compound Drawable垂直对齐

这个问题在某种程度上延续了我的上一个问题.

我现在的问题几乎是一样的,除了不是在不同视图中分离图像和文本(即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只是一个分隔符.

...这就是设置上述属性后布局的样子:(我没有足够的声誉来发布图片,所以这里是它的链接)

(为了清楚起见,这只是一个静态示例.我的文本和图像都是在运行时在代码中动态设置的).

任何帮助是极大的赞赏.

layout android textview android-layout compound-drawables

11
推荐指数
1
解决办法
5812
查看次数

如何在TextView中将文本与其复合drawable对齐?

我无法弄清楚如何在TextView中设置文本的对齐方式及其复合可绘制(小于文本).似乎默认对齐是中心,但我需要通过边缘对齐它们.

PS:android:gravity如果复合可绘制大于文本,则效果很好,但如果较小则不然.

android textview compound-drawables

6
推荐指数
1
解决办法
4835
查看次数

使用复合可绘制对象测量 TextView 返回错误值

我想事先知道视图的大小。我是这样测量它的大小的。

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。如果设置非空值,则宽度仅适用于文本。为什么?我怎样才能得到正确的尺寸?

提前致谢。

android textview compound-drawables

6
推荐指数
0
解决办法
399
查看次数

如何将复合drawable放在文本视图的左上角

我们可以为textview设置复合drawables,如下所示使用drawableLeft 或者setCompundDrawables使用它只能将drawable放在left/right/top/bottom.But我想把drawables只放在Textview的左上角和右上角.我怎样才能做到这一点 ?

android textview drawable compound-drawables

5
推荐指数
0
解决办法
5924
查看次数