标签: android-resources

R.java中的奇怪错误,即使在清理项目之后:"下划线只能用于源级别1.7或更高"

所以一切都很顺利,直到不久前R.java在添加图标后确定出现此错误(5_content_new.png确切地说).

我已经尝试清理项目并重新启动eclipse,但无济于事.

问题代码:

public static final class drawable {
    public static final int 5_content_new=0x7f020000;
    public static final int ic_launcher=0x7f020001;
    ...
}
Run Code Online (Sandbox Code Playgroud)

红线显示在右下方5_,错误显示:

Underscores can only be used with source level 1.7 or greater

以前有人遇到过这样的问题吗?

java eclipse android android-resources

14
推荐指数
1
解决办法
5869
查看次数

未找到Xamarin Android资源文件

我正在Visual Studio中构建一个Android应用程序.当我尝试在Resources文件夹中构建应用程序引用项时,我得到两个错误之一.

如果我使用我的项目的命名空间前缀"Resource.Layout.[Id]"或"Resource.Id.[Id]",我收到此错误:

名称空间'[app namespace]'中不存在类型或命名空间名称'Resource'(您是否缺少程序集引用?)

如果我没有在我的命名空间前面调用Resource,它会尝试访问默认的Android.Resource类,我收到此错误:

'Android.Resource.Layout'不包含'[axml file]'的定义

有没有人遇到过这个错误?我一直在寻找一段时间,但却无法想出任何看似错误的东西.Resource.Designer文件存在.我删除了它,让它重新生成.Ids位于Resource文件中,项目根本无法识别资源类是否存在.

最初,此应用程序的命名空间以"Android"结尾.考虑到可能是问题的一部分,我将其更改为"_Android"和"AndroidApp",包括更改项目属性中的默认命名空间以及更改每个文件中的命名空间声明.但是,每次更改都会出现此错误.

c# android xamarin.android android-resources xamarin

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

Android样式:'style ="@ android:style/XYZ"'和'style ="?android:attr/XYZ"'之间的区别?

我试图将按钮样式设置为我在Android Full Width ICS样式Minimalist Bottom ButtonsViews中询问的那些.

我成功了,对于任何感兴趣的人都有以下xml:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        android:divider="@android:drawable/divider_horizontal_dark"
        android:gravity="bottom"
        android:orientation="vertical"
        android:paddingTop="16dip"
        android:showDividers="beginning|end" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:measureWithLargestChild="true"
            android:orientation="horizontal"
            android:divider="@android:drawable/divider_horizontal_dark"
            android:showDividers="middle" >                             


            <Button
                android:id="@+id/cancel_button"
                style="?android:attr/buttonBarButtonStyle"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:maxLines="2"
                android:text="@string/cancel_button" />

            <Button
                android:id="@+id/login_button"
                style="?android:attr/buttonBarButtonStyle"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_weight="1"
                android:filterTouchesWhenObscured="true"
                android:maxLines="2"
                android:text="@string/login_button" />

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

但有一个问题.eclipse内容辅助不知道以下资源解析发生了什么:

style="?android:attr/buttonBarButtonStyle"

我熟悉典型的分辨率(eclipse的内容辅助知道)

style=@android/style/...

......但我不清楚两者之间的区别.似乎某些样式属性出现在一个而不是另一个.例如,以下内容无法解决任何问题:

style=@android:attr/buttonBarStyle

这两个都没有:

style="@android:style/buttonBarStyle

所以我想这里有两个问题:

  1. 为什么资源引用语法有所不同?
  2. 为什么在attr类别下混淆样式的错误分类.
  3. 什么是attr类别甚至再次使用?

谢谢!

android android-layout android-resources android-styles

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

如何在声明样式中定义整数数组?

我正在实现自己<declare-styleable>的自定义视图(按照此处的说明).我希望能够将整数数组指定为可能的XML属性之一.我如何能:

  1. 将整数数组指定为XML属性attrs.xml
  2. 在我的自定义视图中调用后,从TypedArray中获取它obtainStyledAttributes()

android android-xml typed-arrays declare-styleable android-resources

13
推荐指数
1
解决办法
5812
查看次数

如何在资源文件夹中获取FileInputStream到File

我知道如何使用从目录中AssetManager读取a ,但对于我的特殊用例,我需要一个.我需要一个具体的原因是因为我需要通过调用从中获取对象.Fileres/rawInputStreamFileInputStreamFileInputStreamFileChannelgetChannel()

这是我到目前为止的代码,它从一个读取数据(在我的例子中是一个基元列表)File:

public static int[] loadByMappedBuffer(Context context, String filename) throws IOException{
    FileInputStream fis = context.openFileInput(filename);
    FileChannel ch = fis.getChannel();

    MappedByteBuffer mbuff = ch.map(MapMode.READ_ONLY, 0, ch.size());
    IntBuffer ibuff = mbuff.asIntBuffer();

    int[] array = new int[ibuff.limit()];
    ibuff.get(array);

    fis.close();
    ch.close();

    return array;
} 
Run Code Online (Sandbox Code Playgroud)

我试图File从一个创建Uri,但这只会导致FileNotFoundException:

Uri uri = Uri.parse("android.resource://com.example.empty/raw/file");
File file = new File(uri.getPath());
FileInputStream fis = new FileInputStream(file);
Run Code Online (Sandbox Code Playgroud)

有没有一种方法,我可以得到FileInputStream一个Fileres/raw目录中?

java android nio android-resources

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

如何自定义FloatingActionButton的大小

FloatingActionButton默认有两种尺寸(普通和迷你).我需要另一个(比正常大).

app:fabSizexml中的private int mSize;参数在FloatingActionButton类中变为变量.实际大小将由此函数确定:

final int getSizeDimension() {
    switch(this.mSize) {
    case 0:
    default:
        return this.getResources().getDimensionPixelSize(dimen.fab_size_normal);
    case 1:
        return this.getResources().getDimensionPixelSize(dimen.fab_size_mini);
    }
}
Run Code Online (Sandbox Code Playgroud)

因为它被宣布为最终我无法扩展它.有任何想法吗?我可以dimen.fab_size_mini在我的应用程序中重新定义资源吗?

android android-resources android-design-library

13
推荐指数
3
解决办法
5143
查看次数

使用"resValue"本地化通过build.gradle添加的字符串资源

这是对这篇文章帮助我的答案的延续

我们可以添加字符串资源,如下所示build.gradle:

productFlavors {
    main{
        resValue "string", "app_name", "InTouch Messenger"
    }

    googlePlay{
        resValue "string", "app_name", "InTouch Messenger: GPE Edition"
    }
}
Run Code Online (Sandbox Code Playgroud)

它的作用就像一个魅力,并且每个风格都有不同的app名称.(app_namestrings.xml文件中删除原始字符串资源.

但是,我们如何为这个添加的字符串资源添加本地化字符串build.gradle

我们可以通过指定区域设置的附加参数吗? 或者 可以使用gradle任务来完成它?

注意:我不能这样做strings.xml(因为我的项目结构的几种方式不可行)

android android-resources android-studio android-gradle-plugin android-productflavors

13
推荐指数
2
解决办法
6333
查看次数

使用Locale强制Android将特定的strings.xml文件用于不受支持的语言

......如果是的话,怎么样?

我们制作专用的Android设备,用于工业环境.它基本上是一台平板电脑,但只运行一个应用程序.用户不应该访问设备的任何其他功能,甚至系统设置,如WiFi和时间设置都是通过我们的应用程序而不是通过Android设置小部件执行的.所以基本上每个按钮和消息,他们看到使用我们strings.xml的文件.

目前,我们所有的客户都对使用默认的美式英语设置感到满意,但我们很快就会有一些客户想要使用本地语言并向我们提供翻译文件.目前其中一个是罗马尼亚语,它不是该设备上任何原生支持的语言(三星Galaxy标签4); 另一个是捷克人.

因此,我们希望strings.xml在适当的res文件夹中添加文件,非英语语言和我们的应用程序中的下拉列表,以选择我们正在使用的语言.以编程方式我们认为我们可以使用它Locale来设置strings.xml它使用的文件,例如,如果从下拉列表中选择罗马尼亚语,我们将用于Locale将平板电脑设置为罗马尼亚语,因此我们所有应用程序的UI都将使用罗马尼亚strings.xml文件.

我们的设置(包括新的下拉列表)无法供客户访问 - 它们由现场服务工程师设置在客户现场.

问题:

  1. 这会有用吗?即,即使设备没有该语言的原生支持,我们是否可以控制strings.xml它使用哪个文件Locale
  2. 由于罗马尼亚语不是本设备支持的语言,因此我们假设系统消息仍将以英语显示.这是真的?(如果确实如此,这不是问题 - 系统消息在我们的应用程序中很少见,并且如果发生这种情况,我们的产品用户会接受培训以联系支持.我只是想确保如果我们设置Locale为罗马尼亚语,捷克语或其他没有原生支持的语言,如果它确实试图发出系统消息,它不会崩溃平板电脑).

android locale android-resources

13
推荐指数
2
解决办法
3705
查看次数

如何在Android中为不同的分辨率使用不同的背景图像?

我正在为Android 平板电脑做一个Android应用程序,它具有完整的图像背景,我不能使用9补丁,所以我需要背景尽可能接近窗口大小.

我测试的内容:

我已经使用了测试drawable-ldpi,drawable-mdpi等...文件夹,但我想要的图像,以适合窗口,这是行不通的那么好.

现在我正在尝试使用drawable-wxxxdp文件夹来获得大小接近实际窗口大小的图像.

所以我有这个文件夹结构(每个文件夹都有不同的图像,即:不同文件夹中相同大小的图像不同):

drawable-w800dp-mdpi // 800x600px image
drawable-w800dp-hdpi // 800x600px image
drawable-w1024dp-mdpi // 1024x600px image
drawable-w1024dp-hdpi // 1024x600px image
drawable-w1280dp-mdpi // 1280x800 image
drawable-w1280dp-hdpi // 1280x800 image
drawable-w1280dp-xhdpi // 1280x800 image
Run Code Online (Sandbox Code Playgroud)

问题是,当我测试应用程序在不同的平板电脑并不总是与预期的文件夹取图像.

例如:在1280x800px和160 dpis平板电脑中,报告(使用DisplayMetrics)窗口大小为1280x752,它使用drawable-w1280dp-mdpi文件夹中的1280x800px图像并从顶部和底部剪切一些图像.但是在1280x800px和213dpis平板电脑 上报告的窗口大小为1280x736它会从drawable-w800dp-hdpi... 获取图像...我希望从其他文件夹中获取它,例如drawable-w1024dp文件夹之一...但不是从那个... .

另一方面,如果我尝试使用像1024x600px和160dpis这样的配置来报告窗口大小为1024x552的模拟器,它会从drawable-w1024dp-hdpi文件夹中获取图像,但它会将其缩小并将其居中放在屏幕上,因此我以非常大的边框 …

android android-layout android-resolution android-resources

12
推荐指数
1
解决办法
3167
查看次数

如何修复错误:添加Google Analytics时,global_tracker.xml的资源是否重复?

我正在尝试在我的应用中实施Google Analytics,但在编译时我收到以下错误:

错误:任务':app:mergeDebugResources'的执行失败.[xml/global_tracker] C:\ Users\Carlos\AndroidStudioProjects\Capstone\SP\Stocks Panel Lite\app\src\main\res\xml\global_tracker.xml [xml/global_tracker] C:\ Users\Carlos\AndroidStudioProjects\Capstone\SP\Stocks Panel Lite\app\build\generated\res\google-services\debug\xml\global_tracker.xml:错误:重复资源

我试图运行干净的项目,但我得到了同样的错误.如果我删除app/build,我也会得到同样的错误.

提前致谢.

更新:build.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.carlos.capstone"
        minSdkVersion 11
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
    }

}
repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}
dependencies {
    compile fileTree(include: …
Run Code Online (Sandbox Code Playgroud)

android android-resources google-play-services google-analytics-firebase

12
推荐指数
1
解决办法
7501
查看次数