android利用ImageView点击按钮切换图片

android利用ImageView点击按钮切换图片

本文章中采用ImageView中的setDrawable方法

  • setImageDrawble使用drable资源
  1. 布局文件:在layout目录下的activity_main.xml下编写
  2. 导入图片:复制粘贴到drable目录下方
  3. 简单的方法:
    ImageView iv=findViewById(R.id.image); //定义图片视图
  4. `在这里插入图片描述

具体代码:

RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="359dp"
    android:layout_height="459dp"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <TextView

        android:text="@string/hello_world"
        android:id="@+id/textView"
        android:textSize="28dp"
        android:layout_width="match_parent"	//与父类一样
        android:layout_height="match_parent"
        android:background="@drawable/tieta1"
        android:paddingBottom="@dimen/activity_vertical_margin"		//设置内边距
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity"

   />

    <ImageView

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"	//将本控件置于父控件水平方向的中心位置
        android:layout_centerVertical="true"	//将本控件置于父控件垂直方向的中心位置
        android:src="@drawable/tieta2"	//src:定义横向和纵向的显示方式
        android:id="@+id/imageView1"
       />

</RelativeLayout>

注:部分属性解释

  • @dimen/activity_vertical_margin
    这个的意思就是在你的values文件夹下面的dimens文件里面有一个name叫做activity_vertical_margin的项,这个项里面值就是你android:paddingBottom的值
    比如10dp android:paddingBottom=“@dimen/activity_vertical_margin”
    就等于android:paddingBottom=“10dp”
    如图:在这里插入图片描述
  • tools:context="activity name"
    -本例子中是 tools:context=".MainActivity"
    -这一句不会被打包进APK。
    只是ADT的Layout Editor在你当前的Layout文件里面设置对应的渲染上下文,说明你当前的Layout所在的渲染上下文是activity name对应的那个activity;
    如果这个activity在manifest文件中设置了Theme,那么ADT的Layout Editor会根据这个Theme来渲染你当前的Layout。就是说如果你设置的MainActivity设置了一个Theme.Light(其他的也可以);
    那么你在可视化布局管理器里面看到的背景、控件的就应该是Theme.Light的样子。仅用于给你看所见即所得的效果而已。
  • android:layout_centerHorizontal
    -用于相对布局(RelativeLayout)的子控件居中。
    android:gravity用于控件里的内容怎么显示。值为center_horizontal就是你想要的button上字居中,等同android:gravity=“center”。
  • layout_centerVertical
    让这个相对布局,处于它父控件的垂直方向的中心
    android:layout_centerHorizontal=“true” --将本控件置于父控件水平方向的中心位置
    android:layout_centerVertical=“true” --将本控件置于父控件垂直方向的中心位置
    android:layout_centerVertical=“true” --将控件置于垂直方向的中心位置

3.##### MainActivity.java

具体代码

package com.example.acer.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;


public class MainActivity extends ActionBarActivity {
    ImageView iv;	//定义imageView
    boolean isChanged = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {	//设置点击监听事件
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.imageView1);	//对应:android:id="@+id/imageView1
        iv.setOnClickListener(new View.OnClickListener() {
            @Override	//方法重写
            public void onClick(View v) {
                // TODO Auto-generated method stub
                iv.setImageResource(R.drawable.tieta2);	//设置ImageView的内容为指定id的资源

                if (v == iv) {
                    if (isChanged) {
                        iv.setImageDrawable(getResources().getDrawable(R.drawable.tb));	//调用方法
                    } else {
                        iv.setImageDrawable(getResources().getDrawable(R.drawable.tieta2));
                    }
                    isChanged = !isChanged;

                }
            }
        });
    }
}


  • setImageResource():设置ImageView的内容为指定id的资源。
  • setImageDrawable():设置ImageView的内容为指定的Drawable对象
  • 实际界面
  • 在这里插入图片描述
发布了55 篇原创文章 · 获赞 5 · 访问量 4158

猜你喜欢

转载自blog.csdn.net/qq_43654669/article/details/103075909