android - 带背景的扁平按钮,或带边框的透明背景
问题描述
我不是原生 Android 开发者,但我通过修改 react-native 原生包来学习。
我试图使用本机 Button 组件并以编程方式进行更改,使其看起来像“卸载”的 Play 商店按钮,它是透明背景和边框。还有坚固的“打开”按钮。我只能通过以下方式使其“无国界”:
super(context, null, android.R.attr.borderlessButtonStyle)
或定期提出:
super(context)
这是Play商店按钮的屏幕截图,有谁知道如何以编程方式制作这些按钮。包括以编程方式切换android.R.attr.borderlessButtonStyle
。
解决方案
您需要制作自己的可绘制对象。这是一个例子。不要使用这个,只是复制和修改,因为它不是您要求的样式,它只是一个示例。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid
android:color="#000000" />
<stroke
android:width="1dp"
android:color="#ffffff" />
<corners
android:radius="4dp" />
<padding
android:left="6dp"
android:top="6dp"
android:right="6dp"
android:bottom="6dp" />
</shape>
</item>
<item>
<shape>
<solid
android:color="#90aabbcc" />
<stroke
android:width="1dp"
android:color="#ffffff" />
<corners
android:radius="4dp" />
<padding
android:left="6dp"
android:top="6dp"
android:right="6dp"
android:bottom="6dp" />
</shape>
</item>
</selector>
当然,您是否拥有颜色、自己的边框或无边框以及圆角半径,您就完成了。
推荐阅读
- javascript - 在进行刷新之前不会使用 AJAX 进行更新?
- c# - SQL 网络接口,错误:50 - 发生本地数据库运行时错误
- c++ - 在 C++ 中使用 OpenMP 并行化算法
- java - 上下文在 Fragment .onStart() 方法中不可用
- javascript - 我无法理解这个 javascript 代码片段的含义。有人可以逐行发表评论吗?
- visual-prolog - 序言中的错误“此位置的非法变量类型”
- python - 更改现有网络驱动程序中的 ChromeOptions
- node.js - 无法在邮递员的 pump.io api 上注册新用户
- android - 在 XML 中添加材质按钮导致应用程序崩溃
- email - 即使给出 250 OK,Gmail 也不会发送电子邮件