国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義button點擊效果的兩種方式

2019-12-12 06:20:56
字體:
來源:轉載
供稿:網友

我們在界面上經常會用到button按鈕,但通常button點擊后看不到點擊的效果,如果用戶連續點擊了兩次,就會報NAR錯誤,這樣交互性就比較差了。如果我們自定義了button點擊效果,比如我們點擊了button能讓我們看到我們確實點擊了button按鈕,這樣就會有效的避免重復點擊了。
自定義點擊效果有兩種方式,一種是在xml中定義,另一種是在代碼中定義。
首先看一下如何在xml中定義:
在drawable下新建selector.xml文件:         

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

定義了兩種狀態:一種是按下  一種是獲得焦點。 

drawable分別引用了這三張圖片

      

然后在main.xml下添加button按鈕

  <Button  android:id="@+id/button1"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="button效果演示"  android:background="@drawable/selector" />  

在MainActivtiy中得到button   

Button button1=(Button) this.findViewById(R.id.button1);     button1.setOnClickListener(new View.OnClickListener() {              @Override       public void onClick(View v) {         // TODO Auto-generated method stub         Toast.makeText(getApplicationContext(), "你點擊了button按鈕", Toast.LENGTH_SHORT).show();       }     }); 

下面看下點擊效果:

點擊button前:

      

當按下button按鈕時:

           

接下來 看下第二種實現方式,在代碼中實現:

首先在main.xml中添加:

   <Button    android:id="@+id/button2"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="button效果演示"    android:background="@drawable/button_nomal"/> 

接下面在MainActivity中實現:

  Button button2=(Button) this.findViewById(R.id.button2);     button2.setOnTouchListener(new OnTouchListener() {          @Override     public boolean onTouch(View v, MotionEvent event) {       // TODO Auto-generated method stub       if(event.getAction()==MotionEvent.ACTION_DOWN){         v.setBackgroundResource(R.drawable.button_press);       }else if(event.getAction()==MotionEvent.ACTION_UP){         v.setBackgroundResource(R.drawable.button_nomal);       }       return false;     }   }); 

在這類綁定了button的OnTouchListener監聽,因為OnClickListener繼承了OnTouchListener。運行效果和上面一樣,這里不做過多解釋。

以上就是Android自定義button點擊效果實現方式的全部內容,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳阳县| 集安市| 洪洞县| 河源市| 堆龙德庆县| 驻马店市| 五指山市| 邢台市| 沂南县| 神农架林区| 陈巴尔虎旗| 收藏| 太仆寺旗| 池州市| 宁阳县| 玉山县| 五大连池市| 连云港市| 荃湾区| 嘉峪关市| 白玉县| 包头市| 阳信县| 新兴县| 五常市| 昌邑市| 镇原县| 额尔古纳市| 临湘市| 韩城市| 扎鲁特旗| 涟源市| 云龙县| 尼勒克县| 大荔县| SHOW| 汉寿县| 大新县| 哈密市| 北宁市| 北京市|