Buttons我的Android应用程序上有一些.他们有一个图标和文字.我可以设置Buttonjava代码中的背景颜色.如果单击该按钮,我想显示不同的颜色.那么,如何为压缩状态设置不同的颜色Button?
<Button
android:id="@+id/save"
android:layout_width="130dip"
android:layout_height="wrap_content"
android:scaleType="center"
android:drawableTop="@drawable/save"
android:text="Save"
android:textColor="#FFFFFF"
android:textSize="14dip"
>
Run Code Online (Sandbox Code Playgroud)
该onCreate方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homescreen);
save = (Button)findViewById(R.id.save);
save.setBackgroundColor(Color.rgb(27,161,226)); }
Run Code Online (Sandbox Code Playgroud) 我想制作一个与此图像完全相同的按钮

我想使用一个用于生成这种按钮的xml文件.谁能告诉我怎么做?
是否可以在Toast中使用按钮?
从理论上讲,是的,因为您可以使用XML中的布局构建自定义Toast,但我尝试在其中放置一个按钮,但无法使其注册单击.有没有人设法做那样的事情?
我希望按钮背景在单击按钮后保持特定颜色,并在按下其他按钮时再次更改颜色.我认为这是"以州为中心"的状态.
但是,我似乎只为我的Button按下了两个状态.
我是否正确理解state_focused状态,或者我的StateListDrawable(见下文)是错误的?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false"><shape>
<solid android:color="#00ff00" />
</shape></item>
<item android:state_pressed="true"><shape>
<solid android:color="#ff0000" />
</shape></item>
<item><shape>
<solid android:color="#0000ff" />
</shape></item>
</selector>
Run Code Online (Sandbox Code Playgroud) 我试图找出为什么我的应用程序中的两行按钮被移动比其他按钮低几个像素:

如果我缩短第三个按钮上的文本直到它适合一行,这不会发生,这告诉我它与换行符有关.添加android:layout_gravity="top"到按钮的布局似乎没有帮助.可能导致这个问题的任何想法?
编辑:这是布局XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:padding="10dip"
android:layout_width="wrap_content">
<TextView android:id="@+id/error_text"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:text="Place holder"
android:layout_width="wrap_content"
android:textSize="17dip"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:padding="10dip"
android:layout_width="wrap_content">
<Button android:id="@+id/ok_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ok"
android:textColor="@color/black"
android:textStyle="bold"/>
<Button android:id="@+id/cancel_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dip"
android:text="@string/cancel_login"
android:textColor="@color/black"
android:textStyle="bold"
android:visibility="gone"/>
<Button android:id="@+id/third_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dip"
android:textColor="@color/black"
android:textStyle="bold"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我Button在其中一个布局中使用.我希望Button大小与文本/标签大小一样小.
我使用以下代码.
<Button
android:text="@string/cancle_button"
android:id="@+id/button1"
android:background="@drawable/back_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="12sp"
android:textColor="#ffffff"
android:textStyle="bold" />
Run Code Online (Sandbox Code Playgroud)
但我希望Button高度与文字/标签高度相同.每当我减小或增加文本高度时,Button高度保持不变.我该如何解决这个问题?
我认为标题非常明确我的问题......所以这是我的布局:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_action"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login" />
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerInParent="true"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在android SDKs <21上没问题,ProgressBar正确地显示在Button上并且在Button中居中.但是在Android 5.0上,ProgressBar显示在 Button 后面.
因此,当您在"开发者选项"设置中激活"显示布局边界"选项时,您可以看到它已正确定位,但如果没有该选项,您将无法在屏幕上看到任何内容.
有人知道如何解决这个问题吗?我想这是一个事海拔最近推出的,但我真的不知道该怎么照顾它.为了记录,我正在使用support.v7中最近发布的Theme.AppCompat样式.
编辑:
我还尝试以编程方式应用setElevation(0)和setTranslationY(0)按钮,但它没有改变任何东西.所以我想知道它是否必须处理高程.
先谢谢你们
马蒂厄
android android-progressbar android-button android-5.0-lollipop
我知道如何使用颜色填充制作材质设计按钮:
style="@style/Widget.AppCompat.Button.Colored"
Run Code Online (Sandbox Code Playgroud)
并且没有边框的透明按钮:
style="@style/Widget.AppCompat.Button.Borderless.Colored"
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法让Material Design设计成边框(透明内部)按钮?像下面的东西?
android button android-button material-design material-components-android
如何更改所有按钮的文字颜色?
我知道我可以设置背景颜色如下:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="colorButtonNormal">@color/buttonColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如何为按钮Text执行此操作?
android android-button material-design material-components material-components-android