0

使用 ant build 后,当我尝试分配有问题的(不在 xml 中)时,我得到了一些可绘制的 id。

我有一个包含一些可绘制 id 的数组:

int[]ids={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};

当我尝试将它们分配给图像视图时,会显示不同的可绘制对象。

@Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    setContentView(R.layout.somelayout);
    iv = (ImageView)findViewById(R.id.image);
    iv.setBackgroundResource(ids[0]);
}

当我在 xml 中设置可绘制对象时,它不会发生,这有效:

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/pic1" />
4

2 回答 2

1

尝试关闭 Eclipse 并从命令行运行ant clean,然后运行。ant如果这样可行,最可能的问题是您的 ant 脚本正在构建到与 Eclipse 相同的目录中,并且如果 Eclipse 在执行 ant 构建时正在运行,它可能会检测到更改的文件并同时运行自己的构建。这可能会导致基于构建时间的一些不一致的结果。

通常,请确保您的 ant 脚本构建到与 Eclipse 使用的目录不同的目录。这包括“gen”目录 - 为 ant 使用单独的目录。

于 2013-01-01T08:06:30.423 回答
0

尝试通过资源绘制:

 int[]ids={ getResources().getDrawable(R.drawable.pic1), getResources().getDrawable(R.drawable.pic2)};

如果在 getResources() 中出现错误,请尝试使用

 int[]ids={ YourActivityName.this.getResources().getDrawable(R.drawable.pic1), YourActivityName.this.getResources().getDrawable(R.drawable.pic2)};

也试试这些方法::

删除 int [] id 并尝试直接获取它::

  iv = (ImageView)findViewById(R.id.image);
  iv.setImageResource(R.drawable.pic1);
于 2013-01-01T08:06:33.977 回答