将按钮的外观更改为圆形按钮。

3

我想把现有的矩形按钮改为圆形,并在其中添加“分享”按钮的图片。我的意思是,该按钮应为圆形分享按钮,只包含“分享”图像(适合)。

<Button
        android:id="@+id/button3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp"
        android:layout_marginTop="8dp"
        android:text="03"
        android:textStyle="bold"/>

只需使用图像视图并为其添加点击监听器,如果您不需要文本。 - Manohar
你能分享一下UI的图片吗?你想要什么样的布局?还是可以分享整个布局的代码吗? - Happy Bhimani
5个回答

1
你可以在这里找到答案这里 创建一个drawable资源
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <stroke android:width="1dp" android:color="#FF404040" /> 
  <corners android:radius="6dp" /> 
  <gradient android:startColor="#FF6800" android:centerColor="#FF8000" android:endColor="#FF9700" android:angle="90" /> 
</shape>

然后将背景设置为按钮的。
android:background="@drawable/button_background"

1
创建可绘制文件,名称为bg_share.xml。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<solid
    android:color="@color/colorPrimaryDark">
</solid>

<corners
    android:radius="500dp">
</corners>

<padding
    android:top="0dp"
    android:right="10dp"
    android:left="10dp"
    android:bottom="0dp">
</padding>

</shape>

在您的main.xml文件中,创建一个图片视图而不是按钮,如下所示:
 <ImageView
       android:id="@+id/share"                         
       android:layout_width="wrap_content"                        
       android:layout_height="wrap_content"                        
       android:background="@drawable/bcshare"
       android:padding="10dp"
       android:src="@drawable/ic_share_black_24dp" />

在MainActivity.java中做类似于这样的事情。
 share.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           //Your code...
        }
    });

你可以从向量资产中获取它。 - Priya Vasoya
我该如何将“分享”图标居中在这个imageView中?@PriyaVasoya - Dibas Dauliya
你在Android的 android:src 中使用图像还是矢量可绘制对象?@Rajana - Priya Vasoya
矢量可绘制对象 - Dibas Dauliya
那么肯定是居中了,使用我的代码,否则请分享你的代码。 - Priya Vasoya

0

您可以创建一个单独的drawable并实现圆形形状。然后将该drawable设置为按钮的背景,如下所示:

创建一个名为circle_button.xml的drawable文件

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <solid
        android:color="#008577"/>

    <size
        android:width="120dp"
        android:height="120dp"/>
</shape>

然后按照以下方式更改布局

<Button
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:background="@drawable/circle_button"
   android:text="Button"/>

为什么形状中显示错误,我在哪里可以添加“分享”图片@UdaraAbeythilake? - Dibas Dauliya
背景显示椭圆形,但是分享图片没有显示出来。我已经使用了android:src="..",但是图片仍然没有显示。 - Dibas Dauliya
在按钮内使用 background 属性来设置可绘制的背景,而不是使用 src。 - Udara Abeythilake
那么对于按钮的椭圆视图呢? - Dibas Dauliya

0
在drawable文件夹中创建一个名为“round.xml”的xml文件,并将其用作您提供的按钮背景。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
    <solid android:color="#eeffffff" />
    <corners android:bottomRightRadius="8dp"
        android:bottomLeftRadius="8dp"  
        android:topRightRadius="8dp"
        android:topLeftRadius="8dp"/>
</shape>

并且在布局XML中,您可以使用最后一行来设置按钮的背景

<Button
        android:id="@+id/button3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp"
        android:layout_marginTop="8dp"
        android:text="03"
        android:textStyle="bold"
        android:background="@drawable/round"/>

按钮中的图像未显示,我使用android:share但不起作用,在输入时没有给出建议。 - Dibas Dauliya

0

您可以使用标准的MaterialButtonWidget.MaterialComponents.Button.Icon样式。

类似于:

   <com.google.android.material.button.MaterialButton
            android:layout_width="48dp"
            android:layout_height="48dp"
            style="@style/Widget.MaterialComponents.Button.Icon"
            app:icon="@drawable/ic_share"
            app:iconSize="24dp"
            app:iconPadding="0dp"
            android:insetLeft="0dp"
            android:insetTop="0dp"
            android:insetRight="0dp"
            android:insetBottom="0dp"
            app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.Button.Rounded"
            />

使用app:shapeAppearanceOverlay来获取圆角矩形。这样你就会得到一个圆形。
  <style name="ShapeAppearanceOverlay.MyApp.Button.Rounded" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">32dp</item>
  </style>

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接