标签: android-resources

在从嵌套库继承的Activity中找不到的资源

我已经为3个应用程序创建了两个带有共享代码和资源的android库项目.其中一个库(我称之为库A)具有由所有3个应用程序共享的代码和资源,另一个库具有仅由三个中的两个共享的代码和资源(让我们称之为库B).

所以我让库B依赖于A.我遇到的问题是依赖于库B的两个应用程序.当启动第一个Activity时,我尝试访问库B中定义的xml布局中的元素时得到NoSuchFieldErrors或NullPointerExceptions似乎它无法从工程师B中的超级类中找到资源.我创建了一个小例子来重现问题.

在图书馆A:

AActivity.java:

public class AActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        doStuff();
    }

    protected void doStuff() {
    }

}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testlib"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.testliba.AActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

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

在图书馆B中:

BActivity.java:

public class BActivity extends AActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.activity_main_b);
    super.onCreate(savedInstanceState);

    AlertDialog alertDialog = new …
Run Code Online (Sandbox Code Playgroud)

android android-library android-resources

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

Android在hdpi设备上缩放hdpi图像

我注意到我的应用程序中的所有图像似乎都比原件小.例如.

我把图像放在这样的活动上:

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content"
           android:src="@drawable/ic_search_dark"
           />
Run Code Online (Sandbox Code Playgroud)

我从结果中截取屏幕截图并将图像测量为25x25:

http://petromi.com/get/86b23cdb63.png

但它的实际尺寸是28x28:

http://petromi.com/get/fd68913104.png

图像已放置到drawables-hdpi文件夹中.设备是1280x800平板电脑.我已将其显示指标记录如下:

Log.d("Screen (%s, %s) - [%s, %s] [%s]", dm.widthPixels, dm.heightPixels, dm.xdpi, dm.ydpi, dm.densityDpi);
Run Code Online (Sandbox Code Playgroud)

我得到了:

Screen (1280, 736) - [160.0, 160.15764] [213]
Screen (800, 1216) - [160.0, 160.15764] [213]
Run Code Online (Sandbox Code Playgroud)

(用于肖像和风景)

我很惊讶Android在hdpi设备上从drawable-hdpi缩放图像.可以吗?如果是的话,你能给我一个描述这些规则的链接吗?

android hdpi android-resources

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

Android ImageView根据标签设置图像

我想知道Android中是否有任何方法可以ImageView动态设置图像tag.

理想情况下会是这样的:

// image_view_style.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:tag="1"
        android:drawable="@drawable/image_for_tag_1"/>
  <item android:tag="2"
        android:drawable="@drawable/image_for_tag_2"/>
  <item android:tag="3"
        android:drawable="@drawable/image_for_tag_3"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

而简单地调用ImageViewsetTag()与我想要的价值的方法.

我试过这个,但它不起作用.有没有干净的方式做在资源文件中的图像选择(的东西比别的state_selected,state_pressed等)?

android android-imageview android-resources

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

如何使用本地资源的名称String设置ImageView,避免资源的条件映射

我想以编程方式设置ImageView,将本地资源的名称作为String传递.

通过这种方式清楚地识别出可绘制的内容

 R.drawable.mydrawable_name
Run Code Online (Sandbox Code Playgroud)

如果不在条件开关中映射所有内容,我该如何解决此问题?

我想避免这种形式的东西

if(myString.equal"stringname_1"){
   myImageview.setImageResource( R.drawable.stringname_1);
}
else if(myString.equal"stringname_1")....
etc
Run Code Online (Sandbox Code Playgroud)

android android-imageview android-resources

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

如何使用字符串作为代码?

使用java for Android,我遇到了一个问题:

for(int a = 0; a < 26; a++){
    textViewArray[a] = (TextView) findViewById(R.id.(alphabet[a]));
}
Run Code Online (Sandbox Code Playgroud)

我在xml文件中有26个TextView,其中包含ID A,B,C,D,... ZI需要以上内容才能成为R.id.A,R.id.B,R.id.C,...... R .id.Z运行时.以上是我的尝试之一,由于显而易见的原因不起作用.我想过要用

int[26] = new int[]{R.id.A, R.id.B, R.id.C .... R.id.Z};
Run Code Online (Sandbox Code Playgroud)

然后使用上面的那些数组条目for循环,但有一个更简洁的方法吗?可能将字符串("R.id."+(字母[a]))转换为代码并让它像往常一样运行以查找id?

PS字母表是包含上述示例中的A,B,C ... Z的字符串数组

string android android-resources

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

在strings.xml中获取值

在Xamarin中,我在strings.xml文件中有以下内容:

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

   <string name="app_name">AutoComplete</string>
   <string name="action_settings">Settings</string>
   <string name="hello_world">Hello world!</string>
   <string name="auto_complete">AutoComplete</string>
   <string name="multi_auto_complete">Multi AutoComplete</string>
   <string-array name="list_of_countries">
      <item >USA</item>
      <item >Uk</item>
      <item >Canada</item>
      <item >Australia</item>
      <item >France</item>
      <item >Italy</item>
      <item >China</item>
      <item >Japan</item>
      <item >Spain</item>
      </string-array>

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

如何将上述数据放入数组中?

这是我当前的代码(不起作用):

String[] countries = Resources.GetStringArray (list_of_countries);
Run Code Online (Sandbox Code Playgroud)

提前致谢

arrays android-resources xamarin

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

在库项目中使用库项目的正确值/ strings.xml

我正在开发一个Android应用程序,它使用一个库项目,该项目包含工作区中我的几个应用程序正在使用的常规方法.

在库项目中,我有一个类,其中包含一个显示警报对话框和一些Toast消息的方法.

我想要做的是使用库的 "res/values/strings.xml"值来表示那些警报对话框和Toast消息.关键是我当然希望根据当前用户的语言获取的值是相关的字符串值.这样,每当我在其他应用程序库中使用这些方法时,我就不必为应用程序的"values/strings.xml"中的每个应用程序重新翻译字符串.

提前致谢!

java xml android library-project android-resources

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

Android背景动画滞后游戏

我测试了将ImageView设置为带有一些较小的png文件的动画列表并且没有问题,但是尝试将其用于RelativeLayout的背景,但会导致一些严重的滞后.当我使用16个png图像中的前5个时发生这种情况,我注意到如果由于内存越界而添加所有这些图像,它将无法运行.这是相关代码(onFinish()就在倒数计时器停止时):主要方法:

@Override
    public void onFinish() {
        count.setText("Go!");
        playing = true;
        startTime = System.currentTimeMillis();
        score.setVisibility(View.VISIBLE);

        //Start background animation
        RelativeLayout rl = (RelativeLayout) findViewById(R.id.main);
        rl.setBackgroundResource(R.drawable.background);
        AnimationDrawable frameAnimation = (AnimationDrawable) rl.getBackground();
        frameAnimation.start();
    }
Run Code Online (Sandbox Code Playgroud)

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background"
tools:context=".MainActivity" >
Run Code Online (Sandbox Code Playgroud)

动画列表:

<?xml version="1.0" encoding="utf-8"?>
<animation-list 
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item android:drawable="@drawable/background_0" android:duration="50"/>
<item android:drawable="@drawable/background_1" android:duration="50" />
<item android:drawable="@drawable/background_1" android:duration="50" />
<item android:drawable="@drawable/background_2" android:duration="50" />
<item android:drawable="@drawable/background_3" android:duration="50" />
<item android:drawable="@drawable/background_4" android:duration="50" />
<item android:drawable="@drawable/background_5" android:duration="50" />

</animation-list> …
Run Code Online (Sandbox Code Playgroud)

animation android background android-animation android-resources

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

使用空的""textView android xml引用@string

新的开发人员,希望有人可以帮助我,我看起来似乎无法找到我的问题的答案,我有我的所有textviews @strings但我想知道,我有一个textview,我的xml在android工作室有一个空值ie android:text="",我必须将其留空,因为这是显示字符串数组的结果.

所以我的问题是如何@string在空的时候将它添加到值?抱歉这个noobish问题,但我找不到我的问题的答案!

谢谢

java android android-xml android-resources android-studio

1
推荐指数
3
解决办法
4203
查看次数

android aapt错误:无layout_constraintLeft_toLeftOf

当我使用aapt comandline为新创建的android项目生成.R文件时,它表明

No resource identifier found for attribute 'layout_constraintLeft_toLeftOf' in package 'com.test.androidpack'

那么,如何在aapt命令行中包含约束布局?

我的命令行是如下: aapt package -f ^ -M C:\Users\Administrator\Desktop\test\AndoidPack\app\src\main\AndroidManifest.xml ^ -I D:\Android\Sdk\platforms\android-27\android.jar ^ -S C:\Users\Administrator\Desktop\test\AndoidPack\app\src\main\res ^ -J gen ^ -m 我试图添加-I xxxx\constraint-layout-1.1.1.aar-j constraint-layout-1.1.1.aar所有失败

android aapt android-resources

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