Android中View跟随手指移动效果

 更新时间:2017年01月04日 16:06:43   作者:野比大雄-蜗牛  
这篇文章主要介绍了Android中View跟随手指移动效果,代码简单易懂,非常不错,需要的朋友参考下

最近做了一个项目中,其中遇到这样的需求要求图片移动到手指触碰的地方。具体实现代码如下所示:

package com.example.plane;
import Android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
private int speed = 10;
private MyPlane plane;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
plane = new MyPlane(this);
setContentView(plane);
// plane.setBackgroundResource(R.drawable.ic_launcher);
WindowManager manager = getWindowManager();
Display display = manager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
plane.currentX = metrics.widthPixels / 2;
plane.currentY = metrics.heightPixels / 2;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
/*float x = 0;
float y = 0;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x = event.getX();
y = event.getY();
break;
case MotionEvent.ACTION_MOVE:
x = event.getX();
y = event.getY();
break;
case MotionEvent.ACTION_UP:
x = event.getX();
y = event.getY();
break;
}*/
plane.currentX=event.getX();
plane.currentY=event.getY();
plane.invalidate();
return super.onTouchEvent(event);
}
}
package com.example.plane;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
public class MyPlane extends View {
Bitmap plane;
public float currentX;
public float currentY;
public MyPlane(Context context) {
super(context);
plane = BitmapFactory.decodeResource(context.getResources(),
R.drawable.ic_launcher);
setFocusable(true);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
canvas.drawBitmap(plane, currentX, currentY, p);
}
}

以上所述是小编给大家介绍的Android中View跟随手指移动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • java实现静默安装apk

    java实现静默安装apk

    本文给大家分享的是如何实现偷偷的把一个安卓apk应用安装到手机上,而且不显示确认框,主要是通过反射来实现,好了,小伙伴们仔细看下代码吧,有需要的小伙伴可以参考下。
    2015-04-04
  • Android自定义通用标题栏CustomTitleBar

    Android自定义通用标题栏CustomTitleBar

    这篇文章主要为大家详细介绍了Android自定义通用标题栏CustomTitleBar,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Android使用xUtils3.0实现文件上传

    Android使用xUtils3.0实现文件上传

    这篇文章主要为大家详细介绍了Android使用xUtils3.0实现文件上传的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android中ListActivity用法实例分析

    Android中ListActivity用法实例分析

    这篇文章主要介绍了Android中ListActivity用法,结合实例形式较为详细的分析了ListActivity功能,注意事项与相关使用技巧,需要的朋友可以参考下
    2016-02-02
  • Android自带的四种线程池使用总结

    Android自带的四种线程池使用总结

    本篇文章主要介绍了Android自带的四种线程池使用总结,详细的介绍了4种线程池的用法,具有一定的参考价值,有兴趣的小伙伴可以了解一下
    2017-07-07
  • Android Fragment动态创建详解及示例代码

    Android Fragment动态创建详解及示例代码

    这篇文章主要介绍了Android Fragment动态创建详解的相关资料,并附实例代码及实现效果图,需要的朋友可以参考下
    2016-11-11
  • Android编程实现WebView自适应全屏方法小结

    Android编程实现WebView自适应全屏方法小结

    这篇文章主要介绍了Android编程实现WebView自适应全屏方法,结合实例形式总结了三种常用的WebView自适应全屏实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • Ubuntu中为Android简单介绍硬件抽象层(HAL)

    Ubuntu中为Android简单介绍硬件抽象层(HAL)

    本文主要介绍在Android 的硬件抽象层,学习Android 硬件抽象层(HAL)对理解整个Android都是有非常大的作用,有兴趣的小伙伴可以参考下
    2016-08-08
  • 全面解析Android中对EditText输入实现监听的方法

    全面解析Android中对EditText输入实现监听的方法

    这篇文章主要介绍了Android中对EditText输入实现监听的方法,包括一个仿iOS的带清除功能的ClearEditText输入框控件的详细使用介绍,需要的朋友可以参考下
    2016-04-04
  • Android进阶教程之ViewGroup自定义布局

    Android进阶教程之ViewGroup自定义布局

    这篇文章主要给大家介绍了关于Android进阶教程之ViewGroup自定义布局的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06

最新评论