我想制作这种按钮[相同背景&文本]使用XML样式的颜色
这只是一个例子,我想写一些其他文本,例如:关于我
我还在使用Photoshop设计师创建的按钮
<ImageButton
android:id="@+id/imageButton5"
android:contentDescription="AboutUs"
android:layout_width="wrap_content"
android:layout_marginTop="8dp"
android:layout_height="wrap_content"
android:layout_below="@+id/view_pager"
android:layout_centerHorizontal="true"
android:background="@drawable/aboutus" />
注意:我需要各种尺寸和形状的按钮
我不想在我的Android应用中使用任何图像我只想使用XML
答案 0 :(得分:89)
从androidcookbook.com上的“AdriánSantalla”撰写的食谱中复制粘贴: https://www.androidcookbook.com/Recipe.seam?recipeId=3307
<强> 1。创建表示按钮状态的XML文件
在一个名为'button.xml'的drawable中创建一个xml来命名按钮状态:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/button_disabled" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/button_focused" />
<item
android:state_enabled="true"
android:drawable="@drawable/button_enabled" />
</selector>
<强> 2。创建表示每个按钮状态的XML文件
为四个按钮状态中的每一个创建一个xml文件。所有这些都应该在drawables文件夹下。让我们按照button.xml文件中设置的名称进行操作。
button_enabled.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00CCFF"
android:centerColor="#0000CC"
android:endColor="#00CCFF"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
button_focused.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#F7D358"
android:centerColor="#DF7401"
android:endColor="#F7D358"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
button_pressed.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#0000CC"
android:centerColor="#00CCFF"
android:endColor="#0000CC"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
button_disabled.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#F2F2F2"
android:centerColor="#A4A4A4"
android:endColor="#F2F2F2"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
第3。创建表示按钮样式的XML文件
创建上述文件后,就可以创建应用程序按钮样式了。现在,您需要创建一个新的XML文件,名为styles.xml(如果您还没有),您可以在de values目录中包含更多自定义样式。
此文件将包含应用程序的新按钮样式。您需要在其中设置新的按钮样式功能。请注意,其中一个功能(新样式的背景)应设置为引用第一步中创建的按钮(button.xml)drawable。要引用新的按钮样式,我们使用name属性。
下面的示例显示了styles.xml文件的内容:
<resources>
<style name="button" parent="@android:style/Widget.Button">
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:textColor">#FFFFFFFF</item>
<item name="android:shadowColor">#FF000000</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">-1</item>
<item name="android:shadowRadius">0.2</item>
<item name="android:textSize">16dip</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/button</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
</resources>
<强> 4。使用您自己的自定义应用程序主题创建XML
最后,您需要覆盖默认的Android按钮样式。为此,您需要创建一个名为themes.xml的新XML文件(如果您还没有),进入values目录并覆盖默认的Android按钮样式。
下面的示例显示了themes.xml的内容:
<resources>
<style name="YourApplicationTheme" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/button</item>
</style>
</resources>
当我在寻找自定义按钮时,希望你们能拥有与此相同的运气。享受。
答案 1 :(得分:69)
你有没有试过为任何按钮创建背景形状?
请在下方查看:
以下是与按钮图像分开的图像。
现在,把它放在你的ImageButton for android:src“source”中就像这样:
android:src="@drawable/twitter"
现在,只需创建ImageButton的形状即可获得黑色着色器背景。
android:background="@drawable/button_shape"
并且button_shape是可绘制资源中的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#505050"/>
<corners
android:radius="7dp" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp"
android:bottom="1dp"/>
<solid android:color="#505050"/>
</shape>
试着用它来实现它。您可能需要根据您的要求更改颜色值。
如果它不起作用,请告诉我。
答案 2 :(得分:19)
看看Styled Button它一定会对你有所帮助。 有很多例子请在互联网上搜索。
例如:式
<style name="Widget.Button" parent="android:Widget">
<item name="android:background">@drawable/red_dot</item>
</style>
您可以使用您的选择器而不是red_dot
red_dot:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="#f00"/>
<size android:width="55dip"
android:height="55dip"/>
</shape>
按钮:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="49dp"
style="@style/Widget.Button"
android:text="Button" />
答案 3 :(得分:5)
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#ffffffff"/>
<size
android:width="@dimen/shape_circle_width"
android:height="@dimen/shape_circle_height"/>
</shape>
1.在你的绘画中添加这个
2.设为按钮的背景
答案 4 :(得分:0)
<gradient android:startColor="#ffdd00"
android:endColor="@color/colorPrimary"
android:centerColor="#ffff" />
<corners android:radius="33dp"/>
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp"
/>
答案 5 :(得分:0)
如果要进行自定义按钮设计,则需要做两件事。
第一个是: 在drawable文件夹中创建xml资源文件(示例:btn_shape_rectangle.xml) 然后将代码复制并粘贴到那里。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="16dp"
android:shape="rectangle">
<solid
android:color="#fff"/>
<stroke
android:width="1dp"
android:color="#000000"
/>
<corners android:radius="10dp" />
</shape>
第二个是转到您要实现此设计的布局按钮。只是链接起来。 例: android:background =“ @ drawable / btn_shape_rectangle”
您可以更改形状的颜色半径,以实现所需的设计。
希望它会起作用并为您提供帮助。快乐编码