我想稍微更改标准Android按钮的颜色,以便更好地匹配客户的品牌.
到目前为止,我发现这样做的最好方法是将Button'drawable'改为drawable,位于res/drawable/red_button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/red_button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/red_button_focus" />
<item android:drawable="@drawable/red_button_rest" />
</selector>
Run Code Online (Sandbox Code Playgroud)
但这样做需要我居然为每一个按钮,我想自定义三种不同的可绘制(一个用于按钮在休息,一个集中的时候,和一个按下时).这似乎比我需要的更复杂,更干燥.
我真正想做的就是对按钮应用某种颜色转换.是否有更简单的方法来改变按钮的颜色而不是我正在做的事情?
我正在尝试制作一个圆形按钮,但我不知道该怎么做.我可以制作带圆角的按钮,但我怎么能圆圈.这是不一样的.请告诉我,Android上有可能吗?谢谢.
我的应用程序中有一些这样的按钮:
<Button
android:id="@+id/bSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="Search"
android:textSize="24sp" />
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用文本和图标创建相同的按钮.android:drawableLeft对我不起作用(也许会,但我不知道如何设置图标的最大高度).
所以我创建了一个带有ImageView和TextView的LinearLayout,并使其像一个按钮:
<LinearLayout
android:id="@+id/bSearch2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/btn_default"
android:clickable="true"
android:padding="16dp"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:maxWidth="30dp"
android:scaleType="fitCenter"
android:src="@drawable/search_icon" />
<TextView
android:id="@+id/tvSearchCaption"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="24sp"
android:paddingRight="30dp"
android:gravity="center"
android:text="Search" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的新按钮正是我想要的(字体大小,图标和文本放置).但它看起来不像我的默认按钮:

所以我试着改变我的新Button的背景和文字颜色:
Button Search = (Button) findViewById(R.id.bSearch);
LinearLayout bSearch2 = (LinearLayout) findViewById(R.id.bSearch2);
bSearch2.setBackground(bSearch.getBackground());
TextView tvSearchCaption = (TextView)findViewById(R.id.tvSearchCaption);
tvSearchCaption.setTextColor(bSearch.getTextColors().getDefaultColor());
Run Code Online (Sandbox Code Playgroud)
这给了一个奇怪的结果,我的旧按钮搞砸了:

当我改变XML中这两个按钮的顺序时,所以"新按钮"首先出现,它会产生另一个奇怪的结果:

现在我注意到,当我尝试按下旧按钮时,新按钮会被按下.
有任何想法吗?
那么,有人会如何实现在android L中展示的循环按钮?还有什么是圆形按钮的技术名称,XML代码将不胜感激.
伙计们我在我的布局文件中创建了一个imageButton并设置了一个圆形的png图像作为它的背景.但是当我运行我的应用程序时,它显示一个方形按钮,我的给定图像放在它的中间.
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/sliderr" />
Run Code Online (Sandbox Code Playgroud) 我试过演示FloatingActionButton。我没有看到真正的差异为什么我应该从普通按钮类更改为FloatingActionButton因为如果我想制作圆形按钮,我可以尝试本教程:制作圆形按钮
作为 Android 文档的定义:
浮动操作按钮用于特殊类型的提升操作。它们以浮动在 UI 上方的圆圈图标为特征,并具有与变形、启动和转移锚点相关的特殊运动行为。
浮动操作按钮有两种尺寸:默认尺寸和迷你尺寸。可以使用 fabSize 属性控制大小。
我认为这里的所有内容都可以在普通按钮中轻松实现,例如大小、圆形、UI 上方。只有一件事我不明白:
与变形、发射和转移锚点相关的特殊运动行为
我真的不知道这个。这是什么意思morphing lauching and transfering anchor point。请为我解释。
谢谢 :)
我有一个像图片中的图像按钮.我想要它周围的红色空间(它将是透明的,只是用红色来标识空格)是不可点击的.可能吗 ?我尝试了不同的代码,如通过xml或一些圆形的imageview代码,但没有什么帮助我..

嗨,我正在创建tabla App,
例如

它不应该在圆形外响应,但ImageView是Rectangle,因此它正在响应
我相信你能理解这个问题
ImageView是矩形但它的图像是圆形的,但我想检测仅在圆形图像上的点击...
我想创建圆形按钮。所以我从这里得到了如何在 Android 中获得圆形的提示。正如链接中提到的,按钮的高度和重量必须具有相同的大小才能形成圆形,否则它将是椭圆形。我们不能使用 wrap_content 因为它是椭圆形的。
购买问题是现在我动态创建按钮,我尝试将按钮的高度和宽度设置为相同,但我仍然得到椭圆形按钮而不是圆形。
我尝试通过 xml 文件保持按钮的重量和高度相同它的工作,但通过动态它不是。下面是代码。
for (int count = 1; count <= rowb; count++)
{
tblRow[count] = new TableRow(getApplicationContext());
tbl.addView(tblRow[count]);
for (int j = 1; j <= rowb; j++) {
String nameB=""+i;
btn[i] = new Button(getApplicationContext());
btn[i].setId(i);
btn[i].setText(nameB);
btn[i].setWidth(1);
btn[i].setHeight(1);
tblRow[count].addView(btn[i]);
btn[i].setOnClickListener(getOnClickDoSomething(btn[i],i));
i++;
}
}
notifyAllObservers();
move--;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过,但它也确实有效
TableLayout.LayoutParams lp = new TableLayout.LayoutParams(5,5);
btn[i].setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道问题是什么吗?我如何获得圆形页岩按钮而不是椭圆形?
我有一个应用程序,我必须在其中制作圆形按钮,我成功制作了它,但是当我单击按钮然后更改背景可绘制时我想要什么,但是当我这样做时,圆形按钮变得不可见。我怎么做
代码:-
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke android:color="@color/colorPrimary" android:width="5dp" />
<solid android:color="@color/colorPrimaryDark"/>
<size android:width="150dp" android:height="150dp"/>
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)