2011-12-03 129 views
1

下面的代码给了我一个错误这段代码为什么给我一个错误?

public class SuperImage3Activity extends Activity 
{ 

    ImageView image1, image2; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     image1 = (ImageView)findViewById(R.drawable.sourceimage1); // error here 

     image2 = (ImageView)findViewById(R.drawable.sourceimage2); // error here 

    } 

我的确创建了一个名为绘制和放置sourceimage1.jpg和sourceimage2.jpg目录中的目录。

通过Eclipse中给出的建议是,

“作为ADT 14时,资源领域(如哆啦A梦)不再常量库中的对象定义时, 这是必要的,使库项目可重复使用而无需重新编译它们。这一

一个后果是,你不能再在switch语句中使用的字段directinly。 您必须使用的if-else链,而不是 “

回答

2
R.id.imageview1 
R.id.imageview2 

您已经在res/layout中创建了Xml布局,您可以从中链接您的小部件或视图或任何其他控件,或者可以动态地制作控件。这样

ImageView imageView1=new ImageView(this); 
imageView1.setImageResource(R.drawable.sourceimage1); 
+3

findViewyId表示XML布局中的控件ID,因此您必须给出控件的标识而不是它的iamge资源。谢谢 – SALMAN

+2

http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/你可以看看这个例子 – SALMAN

+2

而不是评论你自己的答案,考虑修改答案主体。 –

0

findViewById用来取景那已经是你调用的方法(通常是一个活动)视图的一部分

基本上它的工作方式是:(按顺序)

  1. 首先你设计布局(在一个XML布局文件,或在程序上)列出所有组件和所需的位置。
  2. 您分配一个ID,你感兴趣的(使用在你的XML android:id="@+id/your_id_here",或setId(XX)如果您的布局编程方式)的资源
  3. 您此布局设置为您的活动或作为现有组件的子(通常与setContentView
  4. 现在你可以使用预定义的标识使用findViewById在2

findViewById是与资源本身作为一个参数(你的绘制对象)使用

相关问题