在 Android 中使用 XML 形状设置绘制矩形

2023-12-10

我有一个问题,我不知道如何解决。如果可以,请你帮助我。 在我的应用程序中,我必须创建一个自定义视图扩展视图。在此视图中,我应该绘制很多矩形,并通过 canvas.drawRect 或 canvas.drawRoundRect 创建它们。天气晴朗。但我想创建这些矩形的复合设计(带有渐变、角、填充等),并且我想在 XML 中执行这些设置(渐变、角、填充等)。我该怎么做?问题是我在 XML 中确定形状,我只能使用这个可绘制对象作为背景,但是当我绘制矩形时,我无法为矩形设置背景。也许还有另一种方法可以解决问题。我可以使用 XML 形状对象不仅设置为背景,还可以设置具有 x、y 坐标和宽度、高度的视图对象吗?

编辑: 我可以画矩形:

canvas.drawRect(x1, y1, x2, y2, paint);

但我在 XML 中有矩形设置,如下所示:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

<!-- Specify a gradient for the background -->
    <gradient
    android:angle="90"
    android:startColor="#55000066"
    android:centerColor="#FFFFFF"
    android:endColor="#55000066" />

<!-- Specify a dark blue border -->
    <stroke 
    android:width="2dp"
    android:color="#000066" />

<!-- Specify the margins that all content inside the drawable must adhere to -->
    <padding
    android:left="5dp"
    android:right="5dp"
    android:top="5dp"
    android:bottom="5dp" />

<corners
    android:topLeftRadius="10dp"
    android:topRightRadius="10dp"
    android:bottomLeftRadius="10dp"
    android:bottomRightRadius="10dp" />
</shape>

我想将此设置应用于我的矩形。如何?


您可以从代码中加载并使用 XML 定义的可绘制对象,如下所示:

public class CustomView extends View {

    Drawable shape;

    public CustomView(Context context) {
        super(context);
        shape = context.getResources().getDrawable(R.drawable.shape);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        shape.setBounds(left, top, right, bottom);
        shape.draw(canvas)
    }

    // ... Additional methods omitted for brevity

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中使用 XML 形状设置绘制矩形 的相关文章

  • 在工具栏下显示内容

    您好 我试图简单地将我的内容放在工具栏下方 但是当我运行我的应用程序时 某些内容本应位于工具栏下方 却隐藏在工具栏后面 我已经阅读了有关使用框架布局来尝试将其分离的内容 但我有点卡住了 我目前正在使用该软件提供的基本 android stu
  • 使用 MemoryStream 创建 Open XML 电子表格时的 Excel 和“不可读内容”

    使用 Open XML SDK v2 0 创建 Excel 电子表格时 我们的 Excel 输出最初可以成功运行几个月 最近Excel 所有版本 开始抱怨 Excel在 zot xlsx 中发现不可读的内容 是否要恢复此工作簿的内容 我们正
  • Android ToggleButton 始终检查

    如果切换按钮处于选中或取消选中状态 我想存储在 SharedPreferences 中 toggle setOnCheckedChangeListener new OnCheckedChangeListener public void on
  • 为什么不能在 Fragment 中使用 ViewPager?它实际上是

    有信息无法使用ViewPager在一个Fragment在许多来源中 例如 Android 开发者繁忙编码指南 http commonsware com 作者 Mark Murphy 或者类似的帖子this https stackoverfl
  • Android Camera.takePicture() 有时不返回?

    我正在编写一个Android 拍照应用程序 该代码在 onPreviewFrame byte data Cameracamera 中从预览中获取帧后进行一些处理 问题在于 android hardware Camera 的函数 takePi
  • 使用 proguard 混淆文件名

    我正在使用 proguard 和 Android Studio 混淆我的 apk 当我反编译我的apk时 我可以看到很多文件 例如aaa java aab java ETC 但我项目中的所有文件都有原始名称 有没有办法混淆我的项目的文件名
  • 如何在 Android 应用程序中隐藏 Flutterwave API 密钥

    我正在构建一个 Android 应用程序 目前正在将 Flutterwave 集成到我的应用程序中以进行支付 建议我永远不要将 Flutterwave API 密钥放在我的应用程序上 那么我该如何隐藏这些键呢 我正在使用 Retrofit
  • & 在 xml 文件中算作一个还是多个字符?

    我正在使用的 XML 模式具有特定的字符串字符长度 所以我可能有一个类似的字符串 Jim Mary 在 C 中是 10 个字符 但是当它写入 xml 时 它会变成 Jim amp Mary 如果 XML 模式规定字符串最多只能有 10 个字
  • 如何在Android中的DataBinding的ViewModel类中获取R.string

    我目前正在使用databinding对于我的 Android 应用程序项目 我想设置error留言在我的CustomTextView from R string txtOldPassWordError并从另一个名为的类中进行设置ViewMo
  • java.lang.IllegalAccessError:预验证类中的类引用在运行测试项目时解析为意外实现?

    在实施项目工作正常之后 我使用第三方库 zxing 实施了项目 然后在我编写了一个测试项目对我的项目进行单元测试之后 运行测试项目后 主项目 类及其方法没有给出任何信息错误 但如果在主项目的该方法中使用任何 zxing 框架类 则会在运行时
  • 在 XSD 中哪里放置版权信息?

    将版权信息放入 XML 架构定义 XSD 时 是否有官方 或半官方 普遍接受的 位置 基于在哪里将版本添加到 XSD 架构 https stackoverflow com questions 2138705 where to add a v
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 如何在 60 分钟后删除共享首选项

    我想存储登录数据 但希望在 60 分钟后删除该数据 执行此操作的正确方法是什么 在这 60 分钟内可以关闭 停止 打开应用程序 我不想使用内部数据库 这是我的访问代码SharedPreferences sharedpreferences g
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • Expresso 的 Android 测试首选项片段

    我在通过 Expresso 测试我的代码时遇到问题 我写了这段代码 public class SettingsActivity extends Activity Override protected void onCreate Bundle
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • 如何知道我的应用程序的活动计数?

    我的应用程序中有多项活动 请考虑以下案例 Activity A 调用 Activity B B 调用 C 当用户按后退键时 C 生成通知并转到 B 现在再次按后退 因此将显示 A 再次按后退键也会终止 A 并显示通知 现在 当用户按下通知图
  • 通过 Gradle 和 Android Studio 构建和运行应用程序比通过 Eclipse 慢

    我有一个多项目 10 个模块 每次构建大约需要 20 30 秒 当我在 Android Studio 中按 运行 时 每次都必须等待才能重建应用程序 这非常慢 是否可以在 Android Studio 中自动化构建过程 或者您对如何加快此过
  • Android AppWidgetManager 方法 updateAppWidget 无法设置意图、加载数据。而且它是随机发生的

    我的小部件由 2 个按钮和一个显示数据的列表视图组成 大多数时候 当调用小部件提供程序的 onUpdate 方法时 一切都会正常加载 每个人都很高兴 但是我注意到有时在调用更新方法后 小部件完全无法加载其数据 列表视图为空 所有按钮均无响应

随机推荐

  • 如何打开和关闭自动亮度? (不重复)

    我只是想打开和关闭自动亮度 我从这段代码开始 在 onCreate 方法内 final ToggleButton autoBrightToggle ToggleButton findViewById R id brightToggle di
  • slickgrid 使用正则表达式验证列

    有一个带有列验证的简单示例 function requiredFieldValidator value if value null value undefined value length return valid false msg Th
  • 在 MEX 函数中将特征复数矩阵返回到 MATLAB,无需额外复制

    这个问题演示如何使用映射对象将双精度矩阵返回到 MATLAB 以下适用于非复杂数据 double outputPtr plhs 0 mxCreateDoubleMatrix mwSize n mwSize m mxREAL outputPt
  • 使用核心图时应用程序崩溃

    Unknown class CPTGraphHostingView in Interface Builder file 2012 01 09 16 09 34 242 ChartArea 2595 207 UIView setHostedG
  • 将函数应用于 pandas Dataframe,其返回值基于其他行

    我有一个如下所示的数据框 gt gt gt import pandas gt gt gt df pandas DataFrame region east west south west east west east west item on
  • 如何垂直对齐

    我有一个水平的 ul 我需要将每个都居中 li 垂直地在其中 我的标记如下 每个 li li 有边框 我需要项目及其内容垂直位于中间 请帮忙 我是 CSS 新手 li ul
  • Twitter认证后回调

    我正在尝试将 Twitter 集成到我的应用程序中 但我似乎无法让它工作 这是我的代码 public class OAuthForTwitter extends Activity private CommonsHttpOAuthConsum
  • NextJS 在 MDX 中导入图像

    我尝试了官方 NextJS MDX Blog 示例 https github com mdx js mdx tree master examples next 但我无法弄清楚如何设置 NextJS 配置以通过 webpack 加载图像 im
  • Visual Studio 中的私有对象

    我正在使用 Visual Studio 2019 并在 MSTest 测试项目 NET Core 中尝试使用PrivateObject测试受保护的方法 例如 我正在尝试执行以下操作 PrivateObject private new Pri
  • 将空格分隔的数字文件读入数组的快速有效的方法?

    我需要一种快速有效的方法来将带有数字的空格分隔文件读取到数组中 文件的格式如下 4 6 1 2 3 4 5 6 2 5 4 3 21111 101 3 5 6234 1 2 3 4 2 33434 4 5 6 第一行是数组的维度 行列 接下
  • Oracle Apex:在交互式报告中创建单选按钮的分步方法

    是否有一个很好的视觉教程来介绍如何在 Apex 4 2 中创建单选按钮的各个步骤 本教程在 APEX 中创建表单以在交互式报表的查询中设置变量帮助我创建表格 我正在寻找类似的表格 在我的应用程序中 我想向交互式报告的每一行添加一个单选按钮
  • 使用 Retrofit 发送带有参数的 Post 请求

    我尝试使用 Retrofit 库在 Android 上使用 API 失败 但在使用 POSTMAN 时我可以看到预期的结果 邮递员设置 api url 基础 控制器 HTTP 方法设置为 POST 单击 from data 或 x www
  • 使用 Nodejs 重试 Cassandra 中的策略

    我终于写了一个Nodejs 中 Cassandra 的重试策略 我有一个用例 只要有一个可用的单节点副本 我就需要通过将一致性修改为最低级别来允许读取和写入 我已附上更新的重试代码 retry js 中的 DowngradeRetryPol
  • 如何获取用户的地理位置?

    在许多网站上 我看到打印出我当前所在的城市 例如 你好 柏林 他们是怎么做到的 为此需要什么 我想主要部分是这里的 javascript 但是我需要什么才能在我自己的应用程序中实现这样的东西呢 或者有一些 Rails 的 gem 吗 另外
  • Spring 3 MVC 请求验证

    我有一个 Spring 3 2 应用程序 并且创建了一个使用基于令牌的安全性的 REST API 每个 REST JSON 负载都包含一个用于执行安全验证的 令牌 字段 控制器方法如下 RequestMapping value someth
  • 在“background.js”和“contentScript.js”之间传递简单消息

    我正在尝试应用以下流程 绑定中的键background js 按下它们时 发送消息来自background js gt contentScript js正在发送响应contentScript js gt background js 这里是m
  • 应用程序.小数分隔符问题

    我的地区使用 作为小数点分隔符 当我在 Excel 2013 中运行以下代码来导入使用 的数字时作为小数点分隔符我没有收到任何错误 Dim strGetResult As String strGetResult httpObject res
  • 需要一个工具来可视化 ant 执行流程和属性

    我想弄清楚如何DITA 开放工具包执行 DITA 到 XHTML 的转换 这很困难 因为该过程是由分布在多个 ant 文件中的数十个 ant 目标管理的 我需要一个可以提供执行流可视化以及 ant 调用的属性依赖性的工具 VizAnt an
  • 什么是“android:allowBackup”?

    自从新的 ADT 预览版 版本 21 他们有一个新的 lint 警告 告诉我清单文件上的下一件事 在应用程序标记中 应明确将 android allowBackup 设置为 true 或 false 默认情况下为 true 这可能会对应用程
  • 在 Android 中使用 XML 形状设置绘制矩形

    我有一个问题 我不知道如何解决 如果可以 请你帮助我 在我的应用程序中 我必须创建一个自定义视图扩展视图 在此视图中 我应该绘制很多矩形 并通过 canvas drawRect 或 canvas drawRoundRect 创建它们 天气晴