zoukankan      html  css  js  c++  java
  • Android中的Button自定义点击效果

     方法一

    1.放在drawable下的selector.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true" android:drawable="@drawable/temp1" />
     <item android:state_pressed="false" android:state_focused="false"
      android:drawable="@drawable/temp2" />
     <item android:state_focused="true" android:drawable="@drawable/temp3" />
     <item android:state_focused="false" android:drawable="@drawable/temp4" />
    </selector>

    2.布局文件main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
    <Button
     android:drawableTop="@drawable/shouru"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/button"
     android:background="@drawable/selector"/>
    </LinearLayout>

    3.只是为了测试,所以效果不是很好,Button部分状态效果图如下:

    ①初始化的时候默认显示的按钮效果:

    ②点击后释放显示的效果

    ③点击不放时的效果

     方法二

    1.布局文件main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
    <Button
     android:id="@+id/button"
     android:drawableTop="@drawable/shouru"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/button"
     android:background="@drawable/temp4"/>
    </LinearLayout>

    2.主要的java代码,实现点击效果:
       Button button = (Button) this.findViewById(R.id.button);
       button.setOnTouchListener(new Button.OnTouchListener(){
       @Override
       public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN){   
                        v.setBackgroundResource(R.drawable.temp1);   
                        Log.i("TestAndroid Button", "MotionEvent.ACTION_DOWN");
                    }   
                    else if(event.getAction() == MotionEvent.ACTION_UP){   
                        v.setBackgroundResource(R.drawable.temp2); 
                        Log.i("TestAndroid Button", "MotionEvent.ACTION_UP");
                    } 
        return false;
       }
      });

  • 相关阅读:
    C++学习9 this指针详解
    福建省第八届 Triangles
    UVA 11584 Partitioning by Palindromes
    POJ 2752 Seek the Name, Seek the Fame
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    HDU 2988 Dark roads(kruskal模板题)
    HDU 1385 Minimum Transport Cost
    HDU 2112 HDU Today
    HDU 1548 A strange lift(最短路&&bfs)
  • 原文地址:https://www.cnblogs.com/jqyp/p/1902498.html
Copyright © 2011-2022 走看看