ImageView是用于在界面上展示图片的一个控件,它可以让我们的程序界面变得更加丰富多彩。学习这个控件需要提前准备好一些图片,图片通常都是放在drawable开头的目录下的。这里我们为了让程序的图片显示更加精美,我们可以使用矢量图来作为资源图片。这里我就不具体讲解如何将.svg矢量图在AndroidStudio中变成.xml适量图了。网上很多教程。
程序效果图:
activity_main.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击切换图片" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/iv1"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/apple" />
</LinearLayout>
</LinearLayout>
MainActivity.java代码:
package com.example.administrator.activitydemo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private Button btn1;
private ImageView iv1;
private int[] img = {R.drawable.apple, R.drawable.grape};//定义一个int数组,用来放图片
private boolean flag = false;//定义一个标识符,用来判断是apple,还是grape
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();//初始化UI控件
}
private void initView() {
btn1 = (Button) findViewById(R.id.btn1);
iv1 = (ImageView) findViewById(R.id.iv1);
}
@Override
protected void onResume() {
super.onResume();
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//首先判断flag是真还是假,如果是真,就显示apple,如果是假,就显示grape
if (flag) {
iv1.setImageResource(img[0]);//apple
flag = false;
} else {
iv1.setImageResource(img[1]);//grape
flag = true;
}
}
});
}
}
效果很简单,就是在点击Button按钮之后,用ImageView控件显示不同图片
步骤1:声名控件
步骤2:初始化UI控件
步骤3:重写onResume()方法,在这里面为Button按钮设置点击监听
步骤4:在点击监听中判断当前的flag为true还是false,如果true显示apple,如果false显示grape
步骤5:具体如何显示图片的呢? 主要调用ImageView类中的setImageResource(int res)函数,正好我们的图片是.xml格式的,而这个格式在Android中最终是以一个int值存在的,所以我们只需要将其作为参数传入即可。