如何以编程方式在视图中设置样式属性

2024-04-17

我使用以下代码从 XML 中获取视图:

Button view = (Button) LayoutInflater.from(this).inflate(R.layout.section_button, null);

我想为按钮设置一个“样式”,我怎样才能在java中做到这一点,因为我想为我将使用的每个按钮使用多种样式。


首先,您不需要使用布局充气器来创建简单的 Button。你可以只使用:

button = new Button(context);

如果您想设置按钮的样式,您有两种选择:最简单的一种是仅指定代码中的所有元素,就像许多其他答案所建议的那样:

button.setTextColor(Color.RED);
button.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);

另一种选择是在 XML 中定义样式,并将其应用到按钮。在一般情况下,您可以使用ContextThemeWrapper http://developer.android.com/reference/android/view/ContextThemeWrapper.html为了这:

ContextThemeWrapper newContext = new ContextThemeWrapper(baseContext, R.style.MyStyle);
button = new Button(newContext);

要更改 TextView(或其子类,如 Button)上与文本相关的属性,有一个特殊的方法:

button.setTextAppearance(R.style.MyTextStyle);

或者,如果您需要支持 API-23 (Android 6.0) 之前的设备

button.setTextAppearance(context, R.style.MyTextStyle);

该方法不能用于更改所有属性;例如要更改填充,您需要使用ContextThemeWrapper。但对于文本颜色、大小等,你可以使用setTextAppearance http://developer.android.com/reference/android/widget/TextView.html#setTextAppearance%28android.content.Context,%20int%29.

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

如何以编程方式在视图中设置样式属性 的相关文章

随机推荐

  • GDI+ System.Drawing.Bitmap 间歇性地给出错误参数无效

    我在 ASP Net 应用程序中有一些执行此操作的 C 代码 位图 bmp 新位图 1184 1900 有时它会抛出异常 参数无效 现在我一直在谷歌上搜索 显然 GDI 因抛出随机异常而臭名昭著 很多人都遇到过这个问题 但没有人能解决它 我
  • Databricks - 不为空,但它不是 Delta 表

    我在 Databricks 上运行查询 DROP TABLE IF EXISTS dublicates hotels CREATE TABLE IF NOT EXISTS dublicates hotels 我试图理解为什么我收到以下错误
  • 迁移到 SvelteKit 的新路由系统

    不知道你怎么想 但我听说过 SvelteKit 中的这个新路由系统 我第一次听说这个是与 error svelte我在此处找到的文件官方文档 https kit svelte dev docs routing error 不久 我还看到了其
  • Docker-nginx-反向代理:使用 docker-compose 构建时在上游找不到主机

    我正在使用 NGINX 容器将某些请求重定向到另一个容器 运行 docker compose up d 时 我收到以下错误 2019 09 26 18 05 00 emerg 1 1 在 etc nginx nginx conf 10 中的
  • 气流中的execution_date:需要作为变量访问

    我真的是这个论坛的新手 但有一段时间 我一直在为我们公司玩气流 抱歉 如果这个问题听起来很愚蠢 我正在使用一堆 BashOperators 编写一个管道 基本上 对于每个任务 我想简单地使用 curl 调用 REST api 这就是我的管道
  • 将 JSON 值列表分解为 SNOWFLAKE 数据库表中的行

    我有一个如下图所示的表格 它基本上是一个 JSON 经过解析后得到下面的输出 现在我希望将 City 和 order 列中的值列表拆分为行 有人可以帮我吗 期望的输出如下 这是一种方法 首先去掉 和 因为 city 列中的双引号不包含单个数
  • PostgreSQL citext 索引与较低表达式索引性能

    我想决定使用citext带有索引的列或使用text索引为 on 的列lower 我执行了一些基准测试 令我惊讶的是 索引打开的搜索lower 导致索引扫描 但在citext如果我只进行索引扫描 我本来期待索引lower 也导致仅索引扫描 此
  • android中如何释放位图内存

    在我们的程序中 我们使用了大量的图像 我们在活动和片段中取消绑定Drawables 如下所示 protected void unbindDrawables View view if view null if view getBackgrou
  • Slim 3 - 如何添加404模板?

    在 Slim 2 中 我可以轻松地覆盖默认的 404 页面 ref http help slimframework com discussions problems 4400 templatespath doesnt change app
  • 使用Sprite Kit如何启用iAd?

    在IOS 7中 我们可以非常轻松地启用iAd 使用 self canDisplayBannerAds YES in code 查看是否加载UIViewController的 但是 我无法在我的 ViewController 加载 SKSce
  • python从2个列表中删除重复项

    我正在尝试从 2 个列表中删除重复项 所以我写了这个函数 a abc def ijk lmn opq rst xyz b ijk lmn opq rst 123 456 for i in b if i in a print found i
  • 将 ZXing 库直接集成到我的 Android 应用程序中

    我写这篇文章纯粹是出于绝望 我被指派为 Android 1 6 手机制作一个独立的条形码扫描仪 作为概念证明 为此我发现了 ZXing 库 我用谷歌搜索过 在 StackOverflow 上阅读相关主题 使用常识等等 似乎没有任何帮助 我就
  • 为什么discord中的客户端在node.js中出现输出错误:TypeError: [CLIENT_MISSING_INTENTS]?

    我创建了一个目录 然后添加了一个 package json 文件 我在 package json 文件上安装了 dotenv 和 Discord js 我在目录中创建了一个 src 文件夹 然后将 bot js 文件放入此 src 文件夹中
  • 无状态 Spring JWT 应用程序 + EnableOAuth2Client

    我在这个解决方案上花费了 50 多个小时 非常感谢您的任何意见 我有一个使用 Angular Spring JWT 无状态身份验证 myApp 的 JHipster 4 x 生成的应用程序 我正在将经过身份验证的 myApp 用户的第 3
  • 静态定位元素影响后续同级元素的绝对位置

    我知道任何元素位置 绝对将相对于具有位置属性的最近祖先进行定位 例如absolute or relative 例如 在各种答案中都提到了这一点here https stackoverflow com questions 10487292 p
  • SwiftUI ViewBuilder 块中 switch 语句的替代方案?

    2020 年 6 月 23 日编辑 从 Xcode 12 开始 ViewBuilder 将支持 switch 和 if let 语句 我一直在尝试使用 SwiftUI 复制我的应用程序 它有一个 RootViewController 根据枚
  • HDFS 在大量小文件和 128 Mb 块大小上的行为

    我有很多 多达数十万个 小文件 每个文件 10 100 Kb 我的 HDFS 块大小等于 128 MB 我的复制因子等于 1 为每个小文件分配 HDFS 块有什么缺点吗 我见过相当矛盾的答案 答案说最小的文件占用整个块 https stac
  • 如何在 C++ 中使用 matlab tic toc?

    在Matlab中 tic do something toc 我尝试拥有此功能 define tic double tic t clock define toc std cout lt lt clock tic t CLOCKS PER SE
  • 多个异步 AJAX 调用最佳实践

    我有一个关于在单个页面上进行多个 AJAX 调用的 最佳实践 的问题 我需要异步进行 5 个独立的调用 我知道 ajax 本质上是异步的 但我很好奇是否有一种 更干净 或 更好 的方法来执行多个 AJAX 调用 下面是包含多个 AJAX 调
  • 如何以编程方式在视图中设置样式属性

    我使用以下代码从 XML 中获取视图 Button view Button LayoutInflater from this inflate R layout section button null 我想为按钮设置一个 样式 我怎样才能在j