Android編程實(shí)現(xiàn)圖標(biāo)拖動(dòng)效果的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)圖標(biāo)拖動(dòng)效果的方法。分享給大家供大家參考,具體如下:
最近優(yōu)化圖標(biāo)拖動(dòng)時(shí)的速率,稍微有一點(diǎn)點(diǎn)效果,直接把代碼貼出來,有興趣一起討論的朋友可以給我留言。
代碼如下:
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è)計(jì)有所幫助。
- android 添加隨意拖動(dòng)的桌面懸浮窗口
- Android 仿淘寶、京東商品詳情頁向上拖動(dòng)查看圖文詳情控件DEMO詳解
- Android 可拖動(dòng)的seekbar自定義進(jìn)度值
- android 應(yīng)用內(nèi)部懸浮可拖動(dòng)按鈕簡單實(shí)現(xiàn)代碼
- Android實(shí)現(xiàn)ImageView圖片縮放和拖動(dòng)
- Android 實(shí)現(xiàn)可任意拖動(dòng)的懸浮窗功能(類似懸浮球)
- android Matrix實(shí)現(xiàn)圖片隨意放大縮小或拖動(dòng)
- Android編程之控件可拖動(dòng)的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)跟隨手指拖動(dòng)并自動(dòng)貼邊的View樣式(實(shí)例demo)
- Android實(shí)現(xiàn)控件拖動(dòng)效果
相關(guān)文章
Android定時(shí)器Timer的停止和重啟實(shí)現(xiàn)代碼
本篇文章主要介紹了Android實(shí)現(xiàn)定時(shí)器Timer的停止和重啟實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android實(shí)現(xiàn)ListView異步加載的方法(改進(jìn)版)
這篇文章主要介紹了Android實(shí)現(xiàn)ListView異步加載的方法,針對前面介紹的方法進(jìn)行了線程操作的改進(jìn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08Android 進(jìn)度條按鈕ProgressButton的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 進(jìn)度條按鈕實(shí)現(xiàn)(ProgressButton)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-10-10flutter 微信聊天輸入框功能實(shí)現(xiàn)
這篇文章主要介紹了flutter 微信聊天輸入框功能實(shí)現(xiàn),本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Android使用ItemTouchHelper實(shí)現(xiàn)側(cè)滑刪除和拖拽
這篇文章主要為大家詳細(xì)介紹了Android使用ItemTouchHelper實(shí)現(xiàn)側(cè)滑刪除和拖拽,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08android實(shí)現(xiàn)okHttp的get和post請求的簡單封裝與使用
這篇文章主要介紹了android實(shí)現(xiàn)okHttp的get和post請求的簡單封裝與使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Android簡單實(shí)現(xiàn)天氣預(yù)報(bào)App
這篇文章主要為大家詳細(xì)介紹了Android簡單實(shí)現(xiàn)天氣預(yù)報(bào)App,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09