android-resources 相关问题

Android资源 - 为Android项目提供不同布局或字符串的框架。

如何混淆Android AOSP系统应用代码?

有谁知道是否可以混淆 Android AOSP 或 LineageOS Android 13 系统应用程序 java 代码或 SystemUI、Settings、TvSettings、framework-res.apk 等应用程序的资源(如果从

回答 1 投票 0

当字符串资源多个时,如何强制使用?

我有一个字符串资源,名称为 app_name,值为 My App Name。我只有一个 strings.xml 文件,因此我的应用程序只有一种语言和一个默认的 strings.xml 文件。问题

回答 1 投票 0

android api 资源限定符 - 如何做范围?

我需要根据设备上android的API级别设置不同的菜单选项。具体来说,对于 API 10 - 15,我需要一个特定的菜单,对于 API 16 及更高版本,我需要另一个菜单。我的

回答 2 投票 0

使用现有字符串定义定义“resValue”

我更感兴趣的是在 strings.xml 文件而不是 build.gradle 中定义我的应用程序的多种风格。鉴于多种风格,我想要一个简化的发布/调试变体: 构建Ty...

回答 4 投票 0

Wear OS 应用程序在通过应用程序中心作为 Android 捆绑包分发时无法找到配套的移动应用程序

我正在为 Android 应用程序创建一个配套的可穿戴应用程序。当构建为调试 apk 和签名 apk 时,这两个应用程序都能完美运行并相互通信。然而,当它...

回答 1 投票 0

为什么 Jetpack Compose 预览显示错误的字符串资源?

有时,当我在可组合项中使用字符串资源时,预览会显示错误的字符串。它对于文字字符串总是工作得很好,只有字符串资源是错误的。该错误不一致......

回答 1 投票 0

具有自定义属性的 Android 运行时资源覆盖

我正在尝试使用运行时资源覆盖(RRO)机制来覆盖xml资源,该资源使用自定义属性和自定义命名空间。构建覆盖 APK 时,aapt2(链接)通过...

回答 4 投票 0

Android 活动之外的文本本地化?

我有一个应用程序,它在域、数据和表示层之间有明确的区别。我有从我的服务器获取的数据模型,它被转换为域模型并交付...

回答 1 投票 0

我的 Android 应用程序无法识别 R.string 资源 - 可能是什么原因?

我通过教科书上的示例应用程序学习Android。在给定的示例源中,R.string.something 被识别: 然而,在我自己的 EXACT 源代码中,无法识别相同的 R.strings - 突出显示为

回答 5 投票 0

使用带有参数的字符串资源(strings.xml)时出现问题

我使用带参数的字符串,如下所示: 我的 Android 设备已在应用程序中达到 %1$s 积分:https://play.google.com/store/apps/details?id=%2$s 我使用带参数的字符串,如下所示: <string name="share_1">My Android device has reached %1$s points in the app: https://play.google.com/store/apps/details?id=%2$s</string> String s = getString(R.string.share_1, result.getText().toString(), activity.getApplicationContext().getPackageName()); Lint 给我这个错误:“格式字符串不是有效的格式字符串,因此不应将其传递给 string.format” 我正在使用最新版本的 Android Studio、最新版本的 Gradle 和 compileSdkVersion 23 buildToolsVersion "23.0.3" 这只是 lint 错误。您可以在 gradle 中禁用 lint 错误 lintOptions { abortOnError false } 您应该使用 ContextCompat 来获取字符串并连接它。 您的字符串包含 String.format() 将尝试搜索和替换的参数。您的应用程序名称始终相同,并且不需要替换该 URL 参数。取出 URL 并单独格式化,然后将两者连接起来: XML: <string name="share_1">My Android device has reached %1$s points in the app:</string> Java: String myAppUrl = String.format("https://play.google.com/store/apps/details?id=%s", activity.getApplicationContext().getPackageName()); String score = getString(R.string.share_1, result.getText().toString()) String toBeDisplayed = String.format("%s %s", score, myAppUrl);

回答 2 投票 0

kotlin 中的字符串格式和可变参数

我有以下方法 fun formatMessages(indicators: IntArray): CharSequence { 返回 context.getString(R.string.foo, 指标) } 字符串是: $1%d -...

回答 3 投票 0

为什么以及如何在Android Studio中使用@xml/file_paths资源?

tl;dr:当我在运行时动态检索 file_path 时,为什么需要 file_paths 资源? 我目前正在通过构建自己的应用程序来学习 Android Studio。 我现在想做的是...

回答 2 投票 0

字符串资源文件中的格式语句

我在常用的 strings.xml 资源文件中定义了字符串,如下所示: 你好 是否可以定义如下格式字符串

回答 6 投票 0

Jetpack Compose 资源最佳实践

我是 Jetpack Compose 的初学者。到目前为止,我一直在使用 Android-XML,并且有明确的最佳实践,例如代码放入 Java/Kotlin 文件夹中,所有资源放入资源文件夹中...

回答 1 投票 0

资源提供的整数在运行时出现乱码

在我的 Android 应用程序中,我创建了文件 app/src/main/res/values/integers.xml: 在我的 Android 应用程序中,我创建了文件 app/src/main/res/values/integers.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <integer name="server_port">8080</integer> </resources> 然后我就有了 public class MyApplication extends Application { final MyServer server = new MyServer(R.integer.server_port); } 但是,当应用程序启动时,日志语句显示该值(即 R.integer.server_port)为 2131296322。 为什么数值会出现乱码?这不是整数资源应该如何实现的吗? R.integer.server_port 给出整数的资源 ID,而不是整数本身。为了获得实际的整数,你必须做getResources().getInteger(R.integer.server_port)。但是,这需要对原始代码进行一些修改,因为在实例化 MyApplication 时尚未设置资源。相反,你可以这样做 public class MyApplication extends Application { MyServer server; @Override public void onCreate() { super.onCreate(); server = new MyServer(getResources().getInteger(R.integer.server_port)); } }

回答 1 投票 0

资源$NotFoundException - 资源 ID #<address>

我在许多不同的设备上面临着很多有关 Resoures$NotFoundException 的问题。我无法使用我的 Samsung A50(Android v11、One UI v3.1)和 Nexus 5(Android v...

回答 3 投票 0

参数计数错误,格式字符串resource_name需要3个,但格式调用提供2个Android字符串

我有一个html格式的资源,因为我想这样显示它 我有一个 html 格式的资源,因为我想这样显示它 <string name="calculator_bottom_sheet_body" translatable="false"> <![CDATA[<b>Basic requirements</b><br /><br /> You must be between 18 - 70 in order to proceed: <ul> <li> requirement 1</li> <li> requirement 2</li> <li> requirement 3 and</li> <li> requirement 4</li> </ul> <br /><br /> <b>Money requirement:</b><br /><br /> From €500 to €15.000<br /><br /> <b>Duration:</b><br /><br /> From 6 to 84 months<br /><br /> If you like to continue press the button below.]]> </string> 从片段中我检索字符串 val body = resources.getString(R.string.calculator_bottom_sheet_body) 效果很好。 但是我想要 €500、€15.000 的值给像 €%s、€%s 这样的变量。所以在我转换线之后 From €%s to €%s<br /><br /> 我需要从片段中调用资源,例如 val body = resources.getString(R.string.calculator_bottom_sheet_body, minAmount, maxAmount) 这就是我收到此错误的地方 Wrong argument count, format string calculator_bottom_sheet_body requires 1 but format call supplies 2 有人知道问题出在哪里吗?? 我认为你需要更新你的字符串 From €%s to €%s<br /><br /> 到 From €%1$s to €%2$s<br /><br /> 并像这样使用它 val body = String.format(context.getResources().getString(R.string.calculator_bottom_sheet_body), minAmount, maxAmount) 希望这有帮助。

回答 1 投票 0

连续多次调用getDrawable,drawable是否被缓存和优化?

简单的问题,我想标题已经说明了一切!我想知道是否可以多次调用同一个 getDrawable,或者我应该调用它一次并存储在惰性 val 中并重用它?

回答 1 投票 0

Android 和 Kotlin 可变参数:格式化字符串返回垃圾

我遇到了一个奇怪的问题:我有一个用于检索资源字符串的通用函数(只是为了避免每次都编写 context.resources.getString() ): 受保护的有趣字符串(@

回答 1 投票 0

如何将 Alpha 通道添加到 xml 中现有的 Android 颜色

我在values/colors.xml中有以下颜色: #0F0E10 我想在渐变中引用这种颜色: 我的values/colors.xml中有以下颜色: <color name="grey_1">#0F0E10</color> 我想在渐变中引用这个颜色: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:angle="-90" android:startColor="#000F0E10" android:endColor="#990F0E10"/> </shape> 但是,这会重复 RGB 颜色定义。理想情况下,我想写这样的东西: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:angle="-90" android:startColor="alpha(00, @color/grey_1)" android:endColor="alpha(99, @color/grey_1)"/> </shape> 或者这个: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:angle="-90" android:startColor="@color/grey_1" android:startTransparency="#00" android:endColor="@color/grey_1" android:endTransparency="#99"/> </shape> 这可能吗? 您可以在 API 23 及更高版本中使用 ColorStateList 来执行此操作。 来自文档: 从 API 23 开始,项目可以选择定义 android:alpha 属性来修改基色的不透明度。该属性需要一个 0 到 1 之间的浮点值或主题属性 如此解决。该项目的整体颜色由以下公式计算 将基色的 Alpha 通道乘以 Alpha 值。为了 例如,以下项目代表主题的强调色为 50% 不透明度: <item android:state_enabled="false" android:color="?android:attr/colorAccent" android:alpha="0.5" /> 因此,就我而言,我会这样做: color/gradient_start_color.xml: <item android:color="@color/grey_1" android:alpha="0" /> color/gradient_end_color.xml: <item android:color="@color/grey_1" android:alpha="0.6" /> drawable/gradient.xml: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:angle="-90" android:startColor="@color/gradient_start_color" android:endColor="@color/gradient_end_color" /> </shape> 你必须用代码来完成。你可以得到这样的颜色, int color = getResources().getColor(R.color.<the color>); 你可以像这样把它变成ARGB: int a = Color.alpha(color); int r = Color.red(color); int g = Color.green(color); int b = Color.blue(color); 现在您可以使用您想要的任何 alpha 重新创建颜色: color = Color.argb(<new alpha>, r, g, b); 这当然意味着您需要从代码构建您的可绘制对象。不是那么干净,但可能。 您必须设置两种不同的颜色作为起始颜色和结束颜色。 请记住,颜色是这样定义的:#AARRGGBB 表示 Alpha、红色、绿色和蓝色。 应用程序启动后,资源处于只读模式。您无法以正确的方式以编程方式更改它们。 尝试使用 ColorUtils 包中的 androidx.core.graphics 类,例如; int color = getResources().getColor(R.color.border_active_default); circle.setFillColor(ColorUtils.setAlphaComponent(color,50)); 那么您就不必实现自己的自定义方法。 我还想指出,它可以通过编程方式完成 ColorStateList.withAlpha() 像这样: csl.withAlpha(0) //transparent csl.withAlpha(255) //opaque

回答 5 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.