1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          Android觸摸事件_wpf觸摸屏點擊事件

          來源:互聯網轉載 時間:2024-01-29 08:32:01

          觸屏事件

          三類簡單觸屏事件:
          • 單擊事件:OnClickListener
          • 長按事件:OnLongClickListener
          • 觸摸事件:OnTouchListener

          這些方法都是View類的,所以像TextView這樣看似不是按鈕的組件也可以使用這些監聽。

          這三類觸屏事件都是View中的接口,其定義如下:
          public static interface View.OnClickListener {          void onClick(View v);}public static interface View.OnLongClickListener {          boolean onLongClick(View v);}public interface View.OnTouchListener {          boolean onTouch(View v, MotionEvent event);}

          由此我們可以知道,要實現監聽,就是要覆蓋這個接口的方法,實現多態。

          單擊事件

          • 單擊事件有以下幾種種實現方法:
            • Activity本身作為事件監聽器類: 直接在class MainActivity extends Activity后面加上implements OnClickListener,不推薦,會使程序結構混亂。
            • 內部類作為事件監聽器: 在MainActivity中定義內部類,在內部類中覆蓋接口,然后在setOnClickListener參數表中創建這個類。
            • 匿名內部類作為事件監聽器: 原理和上面一個方法相同,但是可以用Java的語法簡化,參照Java匿名內部類。
            • 外部類作為事件監聽器: 在MainActivity外部定義一個輔助類,和內部類相似,但是不能訪問組件信息,不建議使用。
            • 直接綁定到標簽: 這是單擊事件獨有的方法,在xml中為組件綁定事件處理方法 android:onClick=“clickName” 然后直接在類中聲明方法:public void clickName(View view)即可

          長按事件

          • 長按事件有單擊事件的前四種方法,但是沒有最后一種方法。
          • 長按事件的返回值是boolean而不是void,所以最后要返回 true或 false。
          • 返回值的含義: 當我們長按時,會觸發長按操作,那么如果我們同時也設置了點擊監聽,我們會不會也觸發了點擊監聽?當返回true,表示消耗掉了這次事件,也就是說不會有單擊的效果。如果返回法false,則在松手的時候會觸發單擊事件。

          觸摸事件

          • 觸摸事件有onTouch方法有參數MotionEvent event,通過對象event方法getX()和getY()可以獲取觸摸出橫縱坐標。
          • 觸摸事件第一下必須點在組件上,之后手指可以滑向組件之外,并且可以得到時時的坐標。
          • 簡單地說,為一個飛機加上監聽之后,我們必須手指放在飛機上才可以拖動飛機。

          實例

          我們在最上方設置一個TextView,用于顯示我們的操作。

          練習一下TableLayout,設置4個按鍵,分別用Button和TextView,用多種方法加上監聽器。

          對最上面的TextView加上觸摸監聽器,并顯示坐標。

          xml代碼:
          <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:andro  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  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="com.example.myapplication.MainActivity">  <TextView      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:      android:textSize="25dp"/>  <TableLayout      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:layout_below="@+id/title">      <TableRow>          <Button              android:text="1"              android:textSize="25dp"              android:layout_weight="1"              android:/>          <Button              android:text="2"              android:textSize="25dp"              android:layout_weight="1"              android:onClick="onClick2" />      </TableRow>      <TableRow>          <TextView              android:              android:text="3"              android:textSize="25dp"              android:layout_weight="1"              android:gravity="center"/>          <TextView              android:text="4"              android:textSize="25dp"              android:layout_weight="1"              android:gravity="center"              android:onClick="onClick4"/>      </TableRow>  </TableLayout></RelativeLayout>
          java代碼
          package com.example.myapplication;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends ActionBarActivity {        @Override    protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final TextView title = (TextView) findViewById(R.id.title);        //先為四個組件添加單擊監聽        Button B1 = (Button) findViewById(R.id.button1);        TextView T3 = (TextView) findViewById(R.id.textView3);        //方法一:定義內部接口類        class OnClick1 implements View.OnClickListener {                public void onClick(View view) {     title.setText("Button1被單擊");}        }        B1.setOnClickListener(new OnClick1());        //方法二:不定義類,用匿名內部類        T3.setOnClickListener(new View.OnClickListener(){                @Override            public void onClick(View view){     title.setText("TextView3被單擊");}        });        //方法三在onCreate函數體外,為xml中注冊的函數定義        //為有id的兩個組件注冊長按監聽        B1.setOnLongClickListener(new View.OnLongClickListener(){                @Override            public boolean onLongClick(View view){     title.setText("Button1被長按");return false;}        });        T3.setOnLongClickListener(new View.OnLongClickListener(){                @Override            public boolean onLongClick(View view){     title.setText("TextView3被長按");return true;}        });        //為T3添加觸屏監聽        title.setOnTouchListener(new View.OnTouchListener(){                @Override            public boolean onTouch(View v, MotionEvent event) {                    title.setText("x坐標為"+event.getX()+"Y坐標為"+event.getY());                return true;            }        });    }    //設置另外兩個單擊監聽    public void onClick2(View view) {            TextView title = (TextView) findViewById(R.id.title);        title.setText("Button2被單擊");    }    public void onClick4(View view){            TextView title = (TextView) findViewById(R.id.title);        title.setText("TextView4被單擊");    }}

          可以試驗Button1和TextView3對于長按,一個Button1觸發單擊,TextView3不觸發。從最上方TextView滑動手指,可以時時顯示坐標。

          版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

          195195.html

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          怎么隱藏qq上的,會員和超級qq圖標?1、點自己名字,打開個人資料夾,你選擇圖標管理。2、點要自動關閉的圖標,當圖標上有一個小紅圈,可以表示該圖標被自動關閉,操作一切就緒點確定。怎么才能隱藏qq空間黃鉆圖標和空間等級?不能不能隱藏地空間等級一:登陸后然后打開個人資料二:點個人資料里面的系統設置,好友和一起聊天里的在迷你資料卡上不顯示業務圖標把前面的勾可以去掉點應用,然后把在把勾打上,點應用。在小巧...

          臺州動車站在哪里?臺州只有一個流動站,位于臺州市黃巖區北城街道王林村。臺州有五個流動站。除臺州站外,還有三門縣三門站、臨海市臨海站、溫嶺市溫嶺站。動臥站沒有臺州南站和臺州北站。只有一個名為 "臺州 "在臺州動車站在哪里?,它位于臺州市黃巖區北城街道王林村。臺州有五個流動站。除臺州站外,還有三門縣三門站、臨海市臨海站、溫嶺市溫嶺站。動臥站沒有臺州南站和臺州北站。此數據來自地圖,最終結果以地圖最新數據...

          阿迪達斯麥迪籃球鞋一共有幾代?阿迪達斯麥迪已經五代了。麥迪5最突出的特點就是極具視覺沖擊力的阿迪達斯ForMotion?技術。這項技術讓玩家擁有非凡的控制力,可以自發地適應地面條件;在運動鞋的內大底上,也有五個ForMotion?技術單位,以確保最大限度地接觸地面。不管你跑得多快或轉彎多猛,對運動來說?能讓玩家安心。阿迪達斯麥迪籃球鞋一共有幾代?麥迪籃球鞋有6代簽名鞋:第一代2002年,阿迪達斯發...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>