2012年7月3日 星期二

Android 開發筆記 - 以 Button/ImageButton 疊圖、動態更新 View 座標

cursor


目標:在指定區域上,偵測手指觸碰位置並疊一張圖標記位置


想法:


用 Button 配合 Button.OnTouchListener 上偵測觸控位置,接著需要在 Button 上疊一張圖標記 Cursor 座標位置,接著偵測 MotionEvent 的事件,動態將 Cursor 位置更新。


實作:


採用 RelativeLayout,裡頭擺上一個 Button (fill_parent) 跟 ImageButton (wrap_content),接著程式方面,替 Button 增加 setOnTouchListener 監控,並在 MotionEvent.ACTION_DOWN 和 MotionEvent.ACTION_MOVE 更新 ImageButton 位置 ( mImageButton.layout((int)event.getX(0), (int)event.getY(0), (int)event.getX(0)+mImageButton.getWidth(), (int)event.getY(0)+mImageButton.getHeight()); )


layout:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="300dp"
       android:layout_height="300dp"
       android:layout_gravity="center">


       <Button
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:text="Button"/>

       <ImageButton
              android:contentDescription="@null"
              android:background="@null"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:src="@drawable/cursor"
              android:layout_alignParentBottom="true"
              android:layout_alignParentRight="true"/>
</RelativeLayout>


收工


沒有留言:

張貼留言