当我将代码插入mainactivity时,Imageview不起作用

时间:2017-02-26 21:22:30

标签: android

我将我的图片picture1.png放在res目录的drawable文件夹中。

在activity_main.xml中我放了代码

 <ImageView
    android:id="@+id/myimageview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/picture1"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    />

运行应用程序时,我的图片成功加载。

但是,https://www.tutorialspoint.com/android/android_resources.htm表示我必须使用imageview代码设置图像视图(如下所示)。据推测,我可以用动态的方式使用它,也许可以使用&#39; if&#39;功能使图像不会一直存在。

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

我修改了

myimage

picture1

这是我的主要活动代码:

package com.example.alby.testapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {


    ImageView imageView = (ImageView) findViewById(R.id.myimageview);
    imageView.setImageResource(R.drawable.picture1);



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


    }
}

但是,应用无法加载并终止。

error: <identifier> expected
error: <identifier> expected

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

为什么会这样?顺便说一句,如果我只把

ImageView imageView = (ImageView) findViewById(R.id.myimageview);

在下一个@Override部分下方,没有错误。

1 个答案:

答案 0 :(得分:1)

您的代码不在任何方法之内。

imageView.setImageResource(R.drawable.picture1);

无论如何,您无法在任何方法之外使用findViewById,因此请尝试使用此方法。

ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    imageView = (ImageView) findViewById(R.id.myimageview);
    imageView.setImageResource(R.drawable.picture1);
}
  

说我必须使用imageview代码设置一个imageview

不,它没有说你必须

android:src="@drawable/..."是说.setImageResource(R.drawable...)的XML方式,所以请使用其中一种。