Android编程实现图标拖动效果的方法

   Android编程实现图标拖动效果的方法

        本文实例讲述了Android编程实现图标拖动效果的方法。分享给大家供大家参考,具体如下:

  最近优化图标拖动时的速率,稍微有一点点效果,直接把代码贴出来,有兴趣一起讨论的朋友可以给我留言。

  代码如下:

  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

  

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:orientation="vertical" >

  

  android:layout_width="match_parent"

  android:layout_height="match_parent">

  

  

  希望本文所述对大家Android程序设计有所帮助。

时间: 2024-07-30 05:53:47

Android编程实现图标拖动效果的方法的相关文章

Android编程实现图标拖动效果的方法_Android

本文实例讲述了Android编程实现图标拖动效果的方法.分享给大家供大家参考,具体如下: 最近优化图标拖动时的速率,稍微有一点点效果,直接把代码贴出来,有兴趣一起讨论的朋友可以给我留言. 代码如下: DragView.java package com.android.dragtest; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.

Android编程实现摄像头临摹效果的方法

本文实例讲述了Android编程实现摄像头临摹效果的方法.分享给大家供大家参考,具体如下: 这篇文章结合本人的开发实例,介绍如何实现摄像头临摹效果,即将摄像头拍摄的画面作为临摹的物体投射到画纸上,用户可以在画纸上继续作画,效果如图1. 主要可以分成四步,第一步在AndroidManifest.xml文件里添加对摄像机的使用许可. <uses-permissionandroid:name="android.permission.CAMERA"/> 第二步在布局文件里使用fra

Android编程仿Iphone拖动相片特效Gallery的简单应用示例_Android

本文实例讲述了Android编程仿Iphone拖动相片特效Gallery的简单应用.分享给大家供大家参考,具体如下: Step 1:准备图片素材. 将icon2,icon3,icon4,icon5,icon6五张图片导入res/drawable里加上icon.png本身一共有6张图片. Step 2:新建Android工程,命名为GalleryDemo. Step 3:设计UI,修改main.xml代码如下: <?xml version="1.0" encoding="

Android编程实现大图滚动显示的方法_Android

本文实例讲述了Android编程实现大图滚动显示的方法.分享给大家供大家参考,具体如下: 问题: 我有一张比较大的图片,比如长宽都是屏幕的两倍大小,我想实现的功能是首先将图片居中显示,由于图片太大显然只能显示一部分,然后可以通过拖动,实现图片的平滑滚动(既看不出来滚动刷新痕迹). 就像google地图一样,如果用mapView这个控件,那么可以在屏幕上拖动整个地图,但是由于地图信息量太大,如果一次拖动过快,那么屏幕会暂时显示出一些刷新痕迹(灰白的格子). 想使用mapView来加载已有图片,但是

Android编程实现大图滚动显示的方法

本文实例讲述了Android编程实现大图滚动显示的方法.分享给大家供大家参考,具体如下: 问题: 我有一张比较大的图片,比如长宽都是屏幕的两倍大小,我想实现的功能是首先将图片居中显示,由于图片太大显然只能显示一部分,然后可以通过拖动,实现图片的平滑滚动(既看不出来滚动刷新痕迹). 就像google地图一样,如果用mapView这个控件,那么可以在屏幕上拖动整个地图,但是由于地图信息量太大,如果一次拖动过快,那么屏幕会暂时显示出一些刷新痕迹(灰白的格子). 想使用mapView来加载已有图片,但是

Android编程实现文件浏览功能的方法【类似于FileDialog的功能】_Android

本文实例讲述了Android编程实现文件浏览功能的方法.分享给大家供大家参考,具体如下: 最近正在弄上传文件,当时想怎么能实现fileDialog的功能呢,打开文件,浏览文件,然后选择文件呢,查了好多资料,也看了不少论坛,都说里面没有这个功能,那真是奇怪了,里面没有这个功能,当然就需要自己动手添加这个功能了. 首先说一下这个文件浏览的简单实现原理: 首先选择一个目录做为根目录,然后打开此目录,常用的就是使用File这个类了,如下: File file=new File(path); 然后可以通过

Android编程实现3D滑动旋转效果的方法_Android

本文实例讲述了Android编程实现3D滑动旋转效果的方法.分享给大家供大家参考,具体如下: 这里我们通过代码实现一些滑动翻页的动画效果. Animation实现动画有两个方式:帧动画(frame-by-frame animation)和补间动画(tweened animation) 本示例通过继承Animation自定义Rotate3D,实现3D翻页效果.效果图如下: 1.Rotate3D(Animation) 首先,自定义Animation的3D动画类Rotate3D public clas

Android编程使用光线传感器获取光线强弱的方法【LightSensorManager封装类】

本文实例讲述了Android编程使用光线传感器获取光线强弱的方法.分享给大家供大家参考,具体如下: 在Android开发中,有时我们需要获知设备所在环境的光线强弱情况,当然这需要我们设备拥有光线传感器.通常我们手机的屏幕自动亮度都是用光线传感器来实现的.该传感器在前置摄像头附近,此外,还有一个距离传感器.这里我们主要讲解如何使用Android手机的光线传感器. 下面是我简单封装的一个光线传感器管理类,主要提供了3个方法: 1.start():启动,在获取光照强度前调用. 2.stop():停止,

Android编程实现3D滑动旋转效果的方法

本文实例讲述了Android编程实现3D滑动旋转效果的方法.分享给大家供大家参考,具体如下: 这里我们通过代码实现一些滑动翻页的动画效果. Animation实现动画有两个方式:帧动画(frame-by-frame animation)和补间动画(tweened animation) 本示例通过继承Animation自定义Rotate3D,实现3D翻页效果.效果图如下: 1.Rotate3D(Animation) 首先,自定义Animation的3D动画类Rotate3D public clas