zoukankan      html  css  js  c++  java
  • Button之常用事件

    Button之常用事件

    一、简介

    1、button介绍

    本文介绍了Buttonn的点击事件,触摸事件,获得焦点事件

     接口分别为:OnClickListener,OnTouchListener,OnFocusChangeListener

    这些事件并不是button才会有,别的控件也会有

    2、button类结构

    button继承的TextView,用法也几乎一样

    二、方法

     这个没啥说的,直接看实例吧

    三、代码实例

    效果图:

    代码:

    fry.Activity01

     1 package fry;
     2 
     3 import com.example.buttonDemo1.R;
     4 
     5 import android.app.Activity;
     6 import android.os.Bundle;
     7 import android.view.MotionEvent;
     8 import android.view.View;
     9 import android.view.View.OnClickListener;
    10 import android.view.View.OnFocusChangeListener;
    11 import android.view.View.OnTouchListener;
    12 import android.widget.Button;
    13 
    14 public class Activity01 extends Activity implements OnClickListener,OnTouchListener,OnFocusChangeListener {
    15     private Button btn_one;
    16     private Button btn_two;
    17     int value=1;
    18     
    19 
    20     @Override
    21     protected void onCreate(Bundle savedInstanceState) {
    22         // TODO Auto-generated method stub
    23         super.onCreate(savedInstanceState);
    24         setContentView(R.layout.activity01);
    25         btn_one = (Button) findViewById(R.id.btn_one);
    26         btn_two = (Button) findViewById(R.id.btn_two);
    27         btn_one.setOnClickListener(this);
    28         btn_two.setOnClickListener(this);//触摸监听器
    29         btn_two.setOnTouchListener(this);
    30         btn_two.setOnFocusChangeListener(this);
    31     }
    32 
    33     @Override
    34     public void onClick(View v) {
    35         // TODO Auto-generated method stub
    36         Button btn = (Button) v;
    37         int width = getWindow().getWindowManager().getDefaultDisplay()
    38                 .getWidth();
    39         /*
    40          * value等于1表示扩大
    41          * 等于-1表示缩小
    42          */
    43         if (btn.getWidth() < 100&&value==-1) {
    44             value=1;
    45         } else if (btn.getWidth() >= width&& value==1) {
    46             value=-1;
    47         }
    48         btn.setWidth(btn.getWidth()+(int)(btn.getWidth()*0.1*value));
    49         btn.setHeight(btn.getHeight()+(int)(btn.getHeight()*0.1*value));
    50 
    51     }
    52 
    53     @Override
    54     public boolean onTouch(View v, MotionEvent event) {
    55         // TODO Auto-generated method stub
    56         int action=event.getAction();//事件类型
    57         if(action==MotionEvent.ACTION_DOWN){//按下
    58             btn_two.setBackgroundResource(R.drawable.button2);
    59         }else if(action==MotionEvent.ACTION_UP){//松开
    60             btn_two.setBackgroundResource(R.drawable.button1);
    61         }
    62         //如果点击事件被处理,就传回true,否则false
    63         //也就是如果传true,事件被处理,onClick就不处理这个点击事件了
    64         return false;
    65     }
    66 
    67     @Override
    68     public void onFocusChange(View v, boolean hasFocus) {
    69         // TODO Auto-generated method stub
    70         if(hasFocus){//获得焦点
    71             btn_two.setBackgroundResource(R.drawable.button2);
    72         }
    73         else if(!hasFocus){//失去焦点
    74             btn_two.setBackgroundResource(R.drawable.button1);
    75         }
    76     }
    77 }

    /buttonDemo1/res/layout/activity01.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6     
     7     <Button 
     8         android:id="@+id/btn_one"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="按钮一"
    12         ></Button>
    13     
    14     <Button 
    15         android:id="@+id/btn_two"
    16         android:layout_width="wrap_content"
    17         android:layout_height="wrap_content"
    18         android:background="@drawable/button1"
    19         ></Button>
    20 
    21 </LinearLayout>

    四、易错点

  • 相关阅读:
    Java-API-Package:java.sql百科
    Java-API-Package:java.net百科
    Java-API-Package:java.lang
    Java-API:java.lang百科
    Java-API-Package:org.springframework.stereotype
    Java-API-Package:org.springframework.beans.factory.annotation
    Java-API-Package:org.springframwork.transaction.annotation
    Java-API-Package:org.springframework.web.bind.annotation
    Java-API-Package:javax.annotation
    Java-API-Package:java.math
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7288079.html
Copyright © 2011-2022 走看看