Android編程實現(xiàn)圖標(biāo)拖動效果的方法
本文實例講述了Android編程實現(xiàn)圖標(biāo)拖動效果的方法。分享給大家供大家參考,具體如下:
最近優(yōu)化圖標(biāo)拖動時的速率,稍微有一點點效果,直接把代碼貼出來,有興趣一起討論的朋友可以給我留言。
代碼如下:
DragView.java
package com.android.dragtest; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.FrameLayout; public class DragView extends FrameLayout { private static final String TAG = "DragView"; private float X; private float Y; private View mDragView; public DragView(Context context) { this(context, null); } public DragView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public DragView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mDragView = new View(context); mDragView.setLayoutParams(new LayoutParams(60, 60)); mDragView.setBackgroundDrawable(getResources().getDrawable(R.drawable.gamecenter)); mDragView.setVisibility(View.INVISIBLE); addView(mDragView); } public boolean onInterceptTouchEvent(MotionEvent ev) { final int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: Log.d(TAG, "===============>onInterceptTouchEvent ACTION_DOWN"); break; case MotionEvent.ACTION_MOVE: Log.d(TAG, "===============>onInterceptTouchEvent ACTION_MOVE"); break; case MotionEvent.ACTION_UP: Log.d(TAG, "===============>onInterceptTouchEvent ACTION_UP"); break; } return true; } public boolean onTouchEvent(MotionEvent ev) { final int action = ev.getAction(); X = ev.getX(); Y = ev.getY(); switch (action) { case MotionEvent.ACTION_DOWN: Log.d(TAG, "onTouchEvent ACTION_DOWN"); mDragView.layout((int)X - 30, (int)Y - 30, (int)X + 30, (int)Y + 30); mDragView.setVisibility(View.VISIBLE); break; case MotionEvent.ACTION_MOVE: Log.d(TAG, "onTouchEvent ACTION_MOVE x:" + X + " Y:" + Y); mDragView.layout((int)X - 30, (int)Y - 30, (int)X + 30, (int)Y + 30); break; case MotionEvent.ACTION_UP: Log.d(TAG, "onTouchEvent ACTION_UP"); mDragView.setVisibility(View.INVISIBLE); break; } return true; } }
DragTestActivity.java
package com.android.dragtest; import android.app.Activity; import android.os.Bundle; public class DragTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.android.dragtest.DragView android:layout_width="match_parent" android:layout_height="match_parent"> </com.android.dragtest.DragView> </LinearLayout>
希望本文所述對大家Android程序設(shè)計有所幫助。
- android 添加隨意拖動的桌面懸浮窗口
- Android 仿淘寶、京東商品詳情頁向上拖動查看圖文詳情控件DEMO詳解
- Android 可拖動的seekbar自定義進度值
- android 應(yīng)用內(nèi)部懸浮可拖動按鈕簡單實現(xiàn)代碼
- Android實現(xiàn)ImageView圖片縮放和拖動
- Android 實現(xiàn)可任意拖動的懸浮窗功能(類似懸浮球)
- android Matrix實現(xiàn)圖片隨意放大縮小或拖動
- Android編程之控件可拖動的實現(xiàn)方法
- Android實現(xiàn)跟隨手指拖動并自動貼邊的View樣式(實例demo)
- Android實現(xiàn)控件拖動效果
相關(guān)文章
Android定時器Timer的停止和重啟實現(xiàn)代碼
本篇文章主要介紹了Android實現(xiàn)定時器Timer的停止和重啟實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Android實現(xiàn)ListView異步加載的方法(改進版)
這篇文章主要介紹了Android實現(xiàn)ListView異步加載的方法,針對前面介紹的方法進行了線程操作的改進,具有一定參考借鑒價值,需要的朋友可以參考下2016-08-08Android 進度條按鈕ProgressButton的實現(xiàn)代碼
這篇文章主要介紹了Android 進度條按鈕實現(xiàn)(ProgressButton)代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-10-10Android使用ItemTouchHelper實現(xiàn)側(cè)滑刪除和拖拽
這篇文章主要為大家詳細介紹了Android使用ItemTouchHelper實現(xiàn)側(cè)滑刪除和拖拽,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08android實現(xiàn)okHttp的get和post請求的簡單封裝與使用
這篇文章主要介紹了android實現(xiàn)okHttp的get和post請求的簡單封裝與使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05