我将我的图片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部分下方,没有错误。
答案 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方式,所以请使用其中一种。