java - 如何创建带圆角的按钮并在运行时以编程方式设置任何颜色

标签 java android android-layout android-drawable

我正在尝试创建一个带有圆角的小部件按钮,我也可以将其更改为我想要的任何颜色。我目前使用 xml 布局文件来创建圆角。问题是当我更改颜色时,按钮返回到其矩形形状。我希望它至少保持圆角。

我找不到解决方案,但非常感谢您收到任何想法。这可能不可能,但我想我会问。主要的一点是,我试图将远程 View 作为小部件的一部分来执行此操作,而不是在易于执行的 Activity 中。

很高兴考虑任何选择...

谢谢

RemoteViews views;
views = new RemoteViews(context.getPackageName(), R.layout.mycustomlayout);
views.setInt(R.id.widgetbutton,"setBackgroundColor", Color.parseColor(widgethexcolor));

最佳答案

请检查此项并按照以下步骤操作: 1.根据需要创建形状文件 2. 将形状文件设置为小部件的背景 3. 从您的 .java 文件中根据要求更改颜色。

bg_button_round_corners.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#CBCBCB"/>   <!-- you can use any color you want-->
    <corners android:radius="10dp"/>
</shape>

布局文件:

   <Button
      android:id="@+id/customButton"
      android:layout_width="match_parent"
      android:layout_height="56dp"
      android:textSize="12sp"
      android:layout_gravity="center"
      android:background="@drawable/bg_button_round_corners"/>

Activity 文件:

   customButton= (Button) view.findViewById(R.id.customButton);
   int color = Color.parseColor("#00FFFF");
   ((GradientDrawable)circleColor.getBackground()).setColor(color);

关于java - 如何创建带圆角的按钮并在运行时以编程方式设置任何颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54146655/

相关文章:

Android,使用ffmpeg将gif分割成帧

android - 无法在 Android 10 中访问 USB 摄像头

Android EditText无法输入文字

android - 如何使用处理程序在 Android 中正确地设置一个又一个堆叠 View 的动画?

android - 如何为动态创建的 View 设置背景颜色?

java - 为什么我的hadoop reducer无法运行/被调用?

java - Android 中的 Groovy 扩展模块?

java - 从相对 URL Android JSoup 转换时绝对 URL 不正确

java - 使用 Jackson Mapper 有选择地将 JSON 数据的一部分映射到嵌套类

java - 同时、同步内容流