安卓常用控件——按钮、图像视图与图像按钮

目录

 

一、按钮(Button):

二、图象视图(Image View)

  2、在XML中的属性:

    3、ImageView的background和src属性有什么区别:

三、图像按钮(ImageButton)

案例

1、案例分析:

2、代码:

     (1)布局资源文件activity_main.xml

(2)主界面类MainActivity


一、按钮(Button):

       1、 继承于TextView,是一个用户界面元素,用户可以利用或点击执行一个动作

        参考Android API文档详情:https://developer.android.google.cn/reference/android/widget/Button

        2、常用属性: text、textSize、textColor、onClick(用于绑定事件处理方法)

二、图象视图(Image View)

        1、继承于View,ImageView是显示图像资源,例如位图或可拉的资源。ImageView也是常用的颜色应用于图像和处理图像缩放。

                参考  Android API文档详情:https://developer.android.google.cn/reference/android/widget/ImageView

        

  2、在XML中的属性:

                android:adjustViewBounds:设置为真,如果你希望ImageView调整其保护可拉的长宽比的范围。

                android:baseline:在这个视图基线的偏移量。

                android:baselineAlignBottom:如果这是真的(true),图像视图将基线与基于它的底部边缘

                android:copTopadding:如果这是真的(true),图像将裁剪适合填充。

                android:maxHeight:可选参数为这一观点提供一个最大高度。

                android:maxWeidth:可选参数为这一观点提供一个最大宽度。

                android:scaleType:控制应该如何调整图像或搬到这个ImageView的大小相匹配

                android:src: 用于设置图片源

                android :tint:对图像蒙版着色

                 android:background(用于设置背景图片)

                android:tintMode:混合模式用于应用图像色彩。

    3、ImageView的background和src属性有什么区别:

              background是指背景,src是指内容之所以有这两个,是考虑到src如果是PNG格式等有透明属性的图片的话,就会在透明的地方显示出设置的background的背景,而不是黑色或者其他系统默认的填充色等。这样也是有助于美观 的。 background 就是背景 src 指的是 ImageView 要显示的图像。 背景就是在后面的东西,不会前来干扰前面的 src

三、图像按钮(ImageButton)

        1、继承于 ImageView,显示一个按钮和一个图像(而不是文本),可按下或由用户点击。默认情况下,一个ImageButton看上去就像一个普通的按钮,与标准按钮背景颜色变化              在不同按钮的状态。图像表 

             面 的按钮是通过定义android:src属性的< ImageButton > XML元素或ImageView.setImageResource(int)方法。

            参考  Android API文档详情:https://developer.android.google.cn/reference/android/widget/ImageButton

                

            2、 重要属性:src(用于设置图片源)、background(用于设置背景图片)

案例

在布局文件设置两个按钮、和一个图片按钮,和一个图片视图

1、案例分析:

       对三个按钮实现按钮监听,想缩小和放大图片就需要得到图像的尺寸,

        通过通过图像视图对象的getLayoutParams()方法得到布局参数对象,然后再利用布局参数对象提供的width与height属性即可获得图像的尺寸。

        imageWidth = ivBear.getLayoutParams().width;

        imageHeight = ivBear.getLayoutParams().height;

    对放大图片的监听,我们还需要获得手机屏幕的大小来判断图片是否出界:

     screenWidtn=getWindowManager().getDefaultDisplay().getWidth();

      srceenHeight=getWindowManager().getDefaultDisplay().getHeight();

2、代码:

     (1)布局资源文件activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

    <LinearLayout

            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
    >
        <Button
                android:id="@+id/btn_minus"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:text="缩小图片"
                android:textSize="15sp"
                android:layout_margin="10dp"
                android:background="#ff0000"
                android:onClick="doMinus"/>

        <Button
                android:id="@+id/btn_plus"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:layout_margin="10dp"
                android:text="放大图片"
                android:textSize="15sp"
                android:background="#ff0000"
                android:onClick="doPlus"/>

        <ImageButton
                    android:id="@+id/btn_exit"
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:layout_margin="10dp"
                    android:src="@mipmap/stop"
                    android:onClick="doExit"


        />
    </LinearLayout>
    <LinearLayout

            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
    >

        <ImageView
                android:id="@+id/iv_bear"
                android:layout_width="200dp"
                android:layout_height="300dp"
                android:src="@mipmap/zadan"
        />
    </LinearLayout>
</LinearLayout>

(2)主界面类MainActivity

package com.example.a13468.mydemo15_button;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

    //图象视图
    private ImageView ivBear;

    //图象高度
    private double imageWidth;

    //图像宽度
    private double imageHeight;

    //屏幕宽度
    private double screenWidtn;

    //屏幕高度
    private  double srceenHeight;

    //缩放比例

    private double zoomScale=0.9;



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

        ivBear=findViewById(R.id.iv_bear);

        //获得屏幕尺寸
        screenWidtn=getWindowManager().getDefaultDisplay().getWidth();
        srceenHeight=getWindowManager().getDefaultDisplay().getHeight();

        //获得图像尺寸
        imageHeight=ivBear.getLayoutParams().height;
        imageWidth=ivBear.getLayoutParams().width;

    }
    /**
     * 缩小图片点击事件
     */
    public void doMinus(View view){
        //获得图象新尺寸
        int newWidth= (int) (ivBear.getLayoutParams().width*zoomScale);
        int newHeight= (int) (ivBear.getLayoutParams().height*zoomScale);


        if (newWidth>40){
            ivBear.setLayoutParams(new LinearLayout.LayoutParams(newWidth, newHeight));
        }else{
            Toast.makeText(this, "不能再缩小啦,不然看不见啦", Toast.LENGTH_SHORT).show();
        }


    }

    /**
     * 放大图片点击事件
     */
    public void doPlus(View view){
        //获得图象新尺寸
        int newWidth= (int) (ivBear.getLayoutParams().width/zoomScale);
        int newHeight= (int) (ivBear.getLayoutParams().height/zoomScale);

        // 按新尺寸设置图像(不能缩小为零,否则不能再放大)
        if (ivBear.getLayoutParams().width<screenWidtn){
            ivBear.setLayoutParams(new LinearLayout.LayoutParams(newWidth, newHeight));
        }else{
            Toast.makeText(this, "温馨提示:图片不能再放大,要不然就出界咯!", Toast.LENGTH_SHORT).show();
        }


    }
    /**
     * 退出应用程序
     *
     * @param view
     */
    public  void  doExit(View view){
        finish();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42370957/article/details/84334400