标签: android-resources

忽略Android lint中的几个警告

我知道我可以忽略属性中的Lint规则 tools:ignore

我的困难在于我想忽略几条规则.就我而言,对于Google分析ga_trackingId,我想忽略TypographyDashesMissingTranslation

我试过没有成功

<resources tools:ignore="TypographyDashes|MissingTranslation" xmlns:tools="https://schemas.android.com/tools" >
Run Code Online (Sandbox Code Playgroud)

<resources tools:ignore="TypographyDashes,MissingTranslation" xmlns:tools="https://schemas.android.com/tools" >
Run Code Online (Sandbox Code Playgroud)

<resources tools:ignore="TypographyDashes MissingTranslation" xmlns:tools="https://schemas.android.com/tools" >
Run Code Online (Sandbox Code Playgroud)

我现在没有想法.如何指定多个值tools:ignore

android lint android-resources

21
推荐指数
2
解决办法
7315
查看次数

如何知道Android设备的最小宽度(sw)?

我有4种不同的设备:

  1. 华硕平板电脑,屏幕7"
  2. 联想平板电脑,屏幕尺寸7"
  3. HTC手机屏幕5英寸
  4. HTC手机,屏幕尺寸4.7"

我想知道我的设备的最小宽度(sw)为它做一个支撑布局.

我想创建一个像"layout-sw600dp"这样的资源文件夹,但我不知道最小宽度(sw)的值.

我尝试使用以下代码打印sw:

DisplayMetrics metrics = getResources().getDisplayMetrics();
Log.i("Density", ""+metrics.densityDpi);
Run Code Online (Sandbox Code Playgroud)

但我不知道这是否是正确的价值.

如何找到最小宽度(sw)?

android android-screen-support android-resources

20
推荐指数
5
解决办法
9518
查看次数

如何在android studio中的xml字符串文件中放置"&"

我有我的xml字符串文件,如下所示:

<string name="text1">ben & angie</string>
Run Code Online (Sandbox Code Playgroud)

但它说我有一个未转义的&.怎么逃避呢?

string android android-resources android-studio

20
推荐指数
1
解决办法
1万
查看次数

Resource.Designer.cs中的模糊引用智能感知错误

我在Visual Studio 2017上开发时遇到了一个奇怪的错误,我已经能够忽略一段时间,但现在开始真的我感到烦恼.

我将此问题称为错误而不是错误,因为我仍然可以在Visual Studio中构建我的项目并将它们部署到我的开发设备,而不会出现构建输出中的错误或警告.这似乎可以忽略一点,但随着时间的推移它已成为一个问题,因为我的intellisense用红色强调它作为一个错误

一个

每次我引用Resource类的属性.正如你可能猜到的那样,我引用了很多这个类,Visual Studio编辑器最终变得混乱了这些"错误",它们(a)阻碍了我在代码中发现实际错误的能力,并且(b)让我无法理解......

"错误"调查

  • 如上图所示,intellisense正在为Resource类中的每个属性选择一个"不明确的引用".当我检查我的Resource.Designer.cs文件时,我只看到一个引用,但得到第二个错误

b.

  • 它现在告诉我,已经声明"具有相同名称的成员".这让我相信有第二个Resource.Designer.cs文件,但我的解决方案资源管理器和Windows资源管理器都只显示一个.

C

试图解决方案

  • 将命名空间从InventoryApp(文件的默认命名空间)更改为InventoryApp.Resources.这让我摆脱了可怕的错误,但是在构建项目时,它将文件中的命名空间恢复为默认值,并且错误会弹回.有人告诉我,我知道这是一个很大的禁忌.
  • 删除了Resource.Designer.cs文件,从项目中删除了"obj"和"bin"文件夹,清理并重建了解决方案,然后将新的Resource.Designer.cs文件添加回我的解决方案.这没有解决问题.
  • 从头开始创建一个全新的项目.即使在从Visual Studio模板创建空白Android应用程序后,错误仍然存​​在.这引出了一个问题:这是我安装Xamarin.Android的问题吗?

侧面笔记

  • Resource.Designer.cs文件的生成操作设置为"编译"
  • .csproj的配置文件包含的标签:

    <AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
    <AndroidResgenClass>Resource</AndroidResgenClass>
    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
    <AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
    <TargetFrameworkVersion>v7.1</TargetFrameworkVersion>
    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
    <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
    <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
    
    Run Code Online (Sandbox Code Playgroud)

c# xamarin.android android-resources xamarin

20
推荐指数
1
解决办法
2839
查看次数

尝试在ANDROID资源中使用<!ENTITY并出现错误:"实体已被引用,但未被声明."

我正在按照此解决方案在我的字符串资源文件中使用enetities:

是否可以直接在Android资源XML文件中进行字符串替换?

我在资源树中使用外部文件:/res/raw/entities.dtd,其内容:

<!ENTITY ent_devicename "MyDeviceName">
Run Code Online (Sandbox Code Playgroud)

string.xml资源文件中:

<!DOCTYPE resources [
    <!ENTITY % ent_devicename SYSTEM "../raw/entities.dtd">
    %ent_devicename;
]>

<resources>
    <string name="name">The name is &ent_devicename;</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

实体"ent_devicename"已被引用,但未被声明.

如您所见,Android Studio可识别外部实体文件:

在此输入图像描述

和实体:

在此输入图像描述

有人能提供一个正确的例子来使事情有效吗?我的意思是一个完全可编译的Android Studio项目,在单独的文件中包含实体声明.

更新 好的,如果你更加关注这个w3schools链接:

https://www.w3schools.com/xml/xml_dtd_entities.asp

你看到了解决方案:

外部entities.dtd文件包含

<!ENTITY ent_devicename "MyDeviceName">
Run Code Online (Sandbox Code Playgroud)

那么新的字符串资源资源:

<?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE resources [
        <!ENTITY ent_devicename SYSTEM "../raw/entities.dtd">
        ]>

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="Typos">
    <string name="ent_devicenamxxe2">&ent_devicename;</string>
Run Code Online (Sandbox Code Playgroud)

我改变了<!ENTITY % ent_devicename<!ENTITY ent_devicename(不再%)我删除%ent_devicename;

现在它编译但是生成的APK似乎忽略了实体值(使用空字符串).所以问题没有解决!

让我知道!

xml dtd android-resources android-studio android-gradle-plugin

20
推荐指数
1
解决办法
1780
查看次数

如何将getsStyledAttributes(int [])与Android的内部主题一起使用

所以我环顾四周,发现它android.R.styleable不再是SDK的一部分,即使它仍然在这里记录.

如果清楚地记录了备选方案的内容,那就不会成为问题.例如,AOSP日历应用程序仍在使用android.R.styleable

// Get the dim amount from the theme   
TypedArray a = obtainStyledAttributes(com.android.internal.R.styleable.Theme);
lp.dimAmount = a.getFloat(android.R.styleable.Theme_backgroundDimAmount, 0.5f);
a.recycle();
Run Code Online (Sandbox Code Playgroud)

那么如果backgroundDimAmount没有得到它int[],怎么会得到android.R.styleable.Theme

obtainStyledAttributes(int [])为了使其与SDK一起使用,我需要注意什么?

android android-xml android-resources android-styles

19
推荐指数
4
解决办法
4万
查看次数

在Android中存储静态数据 - 自定义资源?

我是Android开发的新手,我一直在玩它.我试图创建一个程序,该程序具有类似数据库的小型永不变化数据集合.在C#中,我目前最好的语言,我使用自定义类的列表并将其序列化为xml文件,然后在运行时将其读入我的应用程序.我在Android中找到了/ xml资源文件夹,但我不确定如何去做我想象的事情.这样做最好的方法是什么?

数据永远不需要改变.例:

Blob   | A  | B
----------------
Blob 1 | 23 | 42
Blob 2 | 34 | 21
Run Code Online (Sandbox Code Playgroud)

我知道它的布局就像一张桌子,但使用数据库对我来说并没有多大意义,因为数据永远不会改变,我需要一种方法来存储它,无论如何最初填充数据库.

所以基本上我正在寻找一种在我的应用程序中存储有些复杂的静态数据的方法.有任何想法吗?

编辑:我也看到了/ raw文件夹.所以我可以将东西存储在/ res/raw或/ res/xml中.但我不确定存储/解析数据的最佳方法是什么......

xml android android-pullparser android-parser android-resources

19
推荐指数
2
解决办法
3万
查看次数

错误获取资源编号的值时没有包标识符

两个活动都在同一个包中

第二个活动使用第二个布局文件

setContentView(R.layout.main2);
Run Code Online (Sandbox Code Playgroud)

Second_Activity中此行的错误.

EditText text1 = (EditText) findViewById(R.id.EditText03);
Run Code Online (Sandbox Code Playgroud)

这是Second_Activity的布局文件.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/LinearLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Answer Is : " >
        </TextView>

        <EditText
            android:id="@+id/EditText03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </EditText>
    </LinearLayout>

    <Button
        android:id="@+id/Button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Calling an intent" >
    </Button>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

以下是LogCat窗口中的错误

08-01 19:32:20.340: WARN/ResourceType(8875): No package identifier when getting value for resource number 0x00000005
08-01 19:32:20.390: ERROR/AndroidRuntime(8875): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x5 
Run Code Online (Sandbox Code Playgroud)

mail.xml

<TextView 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-resources

19
推荐指数
6
解决办法
5万
查看次数

dimen.xml还是dimens.xml?

我通常将尺寸存储在dimen.xml文件中.但是,IntelliJ IDEA的intellisense将维度放入文件中dimens.xml.

现在,如果我将维度放入文件中dimens.xml,Eclipse将如何处理?

我看到docs允许使用这两个文件.哪一个应该被使用,如果该项目将通过使用两个 Eclipse和IDEA用户?

android android-resources

19
推荐指数
1
解决办法
1万
查看次数

禁用Android资源/图片/ PNG优化

如何防止Android"构建过程"优化.png图像?

我有一个包含以下res目录的Android项目:

- /res/
- /res/drawable
- /res/drawable-hdpi
- /res/drawable-hdpi-v5
- /res/drawable-ldpi
- /res/drawable-ldpi-v5
- /res/drawable-mdpi
- /res/drawable-mdpi-v5
Run Code Online (Sandbox Code Playgroud)

这些目录包含许多.png文件.我使用PNGOUTWin优化PNG尺寸,整体尺寸减少了20%以上.当我构建.apk文件时,图像由构建过程"优化",整体大小现在比初始大小高10%,或者比我的/ PNGOUTWin优化大小高30%.

我的目标是减小.apk大小,即使它会影响最终性能,内存要求等.如何防止"构建过程"优化.png图像?

我的目标是Android 2.2及更高版本.

PS:我目前正在从Eclipse构建我的Android项目,但我稍后会切换到自动构建(Ant?).

关于JPG图像的注意事项: JPG不起作用,因为它们没有透明度.

android android-build android-image android-resources

19
推荐指数
3
解决办法
2万
查看次数