- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 xml 文件中设置了一个形状,并在按钮上的可绘制对象中使用了 xml。感谢这个链接 Drawable shape not showing when used in combination with android:drawableBottom attribute.我能够得到要显示的形状。我想使用 rgb 值更改形状的颜色填充。我试过 setCompoundDrawablesWithIntrinsicBounds 但我似乎无法将 rgb 值链接到按钮上的 drawableright 图像。
这里是circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:id="@+id/circle2">
<gradient
android:startColor="#FFFF0000"
android:endColor="#80FF00FF"
android:angle="45"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="8dp" />
<size android:width="20dp"
android:height="20dp"/>
</shape>
这是我的按钮
<ToggleButton
android:id="@+id/button6"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@drawable/custom_fixture_buttons"
android:drawableRight="@drawable/circle"
android:textColor="@drawable/white"
android:textOff="F6"
android:textOn="F6"
android:textSize="30sp" />
这是我改变形状颜色的尝试。
private void SetColorDot(int index, int i, int j, int k) {
switch (index) {
case 0: {
Resources res = getResources();
final Drawable drawable = res.getDrawable(R.drawable.circle);
drawable.setColorFilter(Color.rgb(i, j, k), Mode.SRC_ATOP);
img.setBackgroundDrawable(drawable);
Fixture1.setCompoundDrawablesWithIntrinsicBounds(0, 0,img, 0);
break;
}
新代码效果很好
private void SetColorDot(int index, int i, int j, int k) {
switch (index) {
case 0: {
Resources res = getResources();
final Drawable drawable = res.getDrawable(R.drawable.circle);
((GradientDrawable) drawable).setColor(Color.rgb(i, j, k));
drawable.mutate();
Fixture1.setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null);
break;
最佳答案
您应该能够将 Drawable
转换为 GradientDrawable
,并对其调用 setColor()
方法为其分配单一颜色.请注意,更改颜色会影响从资源加载的所有 Drawable
实例。如果你也在其他地方使用它并且不希望其他实例也同时改变,那么你应该在 Drawable
上调用 mutate()
来提供它在更改颜色之前具有单独的状态。
所以在你的情况下你可以这样做:
Drawable drawable = res.getDrawable(R.drawable.circle);
// Do this only if you are also using the Drawable in another place,
// and don't want it to be changed also.
// drawable.mutate();
((GradientDrawable)drawable).setColor(Color.rgb(i, j, k));
关于android - 更改按钮 drawableright 中使用的形状的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21080156/
我有一个 radiobutton,右侧有文字和图片,我希望 width 为 parent_width,但是 drawableright 靠近右边的文字。我怎样才能做到这一点?我得到以下 我想获得以下但
我在 xml 文件中设置了一个形状,并在按钮上的可绘制对象中使用了 xml。感谢这个链接 Drawable shape not showing when used in combination wit
下面是我的布局: 我想在 EditText 获得焦点时显示 drawableRight。 并在没有焦点的情况下隐藏起来。 还有一个是我想设置drawableRight的OnClickListene
我试图在单击按钮后在按钮右侧设置图像。我想通过代码来做到这一点。 我已经看到如何通过代码更改背景资源,但我找不到任何示例来说明如何通过代码更改侧面。可能吗? 最佳答案 你需要使用 public voi
如果我在按钮上使用 android:drawableRight="@drawable/my_image": 然后编辑器中的警告/建议告诉我: Consider replacing android:d
我尝试为 Switch 执行 android:drawableLeft 和 android:drawableRight drawableLeft 显示正常,但 drawableRight 显示在 Sw
通过xml设置drawable有什么区别 android:drawableRight="@drawable/arrow_right_normal" 并通过如下代码设置可绘制对象 bt.setCompo
我需要在点击 EditText 的 drawableRight 时打开手机的通讯录。 drawableRight 上的点击事件工作正常但问题是,当我点击/触摸 EditText 上的任何地方时,它也会
在 EditText 中,我在 EditText 的右侧放了一张图片,我使用 FrameLayout 添加一个 TextView ,显示 Edittext 的剩余输入计数(如 p1 所示)。 但是当输
我总是随着图书馆的更新而更新,这就是它的结果。 在 build.gradle(Project:xxx) 中: classpath 'com.android.tools.build:gradle:2.2
我知道在 XML 中设置 drawableRight。但我需要以编程方式进行,因为它会根据某些条件进行更改。 最佳答案 您可以使用以下功能: editText.setCompoundDrawables
我在列表项中有 TextView 和 drawableLeft 和 drawableRight。问题是,每当 TextView 的高度较大时,drawableLeft & drawableLeft 不
我在 xml 布局中的复选框: 相关 Activity 的 onCreate() 方法内部: CheckBox cb1 = (CheckBox) findViewById(R.id.cb1); cb
我有一个单选组和 3 个单选按钮。我已经使用 android:drawableRight 在每个单选按钮的右侧添加了图像。我可以动态更改使用 android:drawableRight 添加的图像吗?
我有以下 TextView: 结果是这样的: 如何使加载圆可绘制成比例约束,使其高度与文本高度匹配? 另外,如果可能的话,我想在文本和图像之间添加一些间距。 最佳答案 要使 loading 更小,只
EDIT 我刚刚尝试了一个没有 TextInputLayout 的 EditText 并且它按预期工作。所以问题一定出在 TextInputLayout 的新变化上。 我已经使用自定义 EditTex
我是一名优秀的程序员,十分优秀!