在使用ant build之后,当我尝试将它们分配出来时(不是在xml中),我得到一些可绘制的id混合起来。
我有一个数组,其中包含一些可绘制的ID:
int[]ids={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
当我尝试将它们分配给imageview时,会显示不同的drawable。
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.somelayout);
iv = (ImageView)findViewById(R.id.image);
iv.setBackgroundResource(ids[0]);
}
当我在xml中设置drawable时不会发生这种情况:
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/pic1" />
答案 0 :(得分:1)
尝试关闭Eclipse并从命令行运行ant clean
,然后运行ant
。如果可行,最可能的问题是您的ant脚本构建到与Eclipse相同的目录,如果Eclipse在执行ant构建时正在运行,它可能会检测更改的文件并同时运行自己的构建。这可能会导致基于构建时间的一些不一致结果。
通常,请确保您的ant脚本构建到与Eclipse使用的目录不同的目录。这包括“gen”目录 - 为ant使用单独的目录。
答案 1 :(得分: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)};
iv = (ImageView)findViewById(R.id.image);
iv.setImageResource(R.drawable.pic1);