Android中View跟随手指移动效果

作者:野比大雄-蜗牛 时间:2021-07-26 00:21:18 

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


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跟随手指移动效果网站的支持!

来源:http://blog.csdn.net/u010597493/article/details/54020192

标签:android,view,手指,移动
0
投稿

猜你喜欢

  • C#窗口实现单例模式的方法

    2022-11-03 15:08:23
  • SpringBoot中shiro过滤器的重写与配置详解

    2021-07-28 23:40:09
  • Kotlin基本数据类型详解

    2022-10-05 04:36:23
  • 图文教程教你IDEA中的Spring环境搭建+简单入门

    2022-04-13 23:14:48
  • Android卫星菜单效果的实现方法

    2023-10-18 12:41:34
  • WinForm中实现picturebox自适应图片大小的方法

    2022-09-07 21:14:01
  • 如何使用Java给您的图片瘦身之Thumbnailator技术

    2023-10-31 10:25:52
  • C#中的高效IO库System.IO.Pipelines

    2022-11-16 03:43:06
  • Android自定义View倒计时圆

    2022-01-06 17:42:30
  • C#导入导出EXCEL文件的代码实例

    2022-04-21 07:15:15
  • 通过Feign进行调用@FeignClient 找不到的解决方案

    2023-08-18 19:06:52
  • java基础之接口组成更新的实现

    2022-10-03 08:10:27
  • Android WebView无法弹出软键盘的原因及解决办法

    2023-07-07 18:30:00
  • springcloud干货之服务注册与发现(Eureka)

    2021-07-08 11:04:23
  • C#中使用JSON.NET实现JSON、XML相互转换

    2022-12-11 04:34:12
  • swing登录注册界面设计

    2023-11-24 17:27:21
  • Android实现ListView控件的多选和全选功能实例

    2023-01-04 02:26:50
  • C#实现线程安全的简易日志记录方法

    2023-12-20 22:45:17
  • java中Class.getMethods()和Class.getDeclaredMethods()方法的区别

    2021-05-28 23:05:46
  • springboot读取文件,打成jar包后访问不到的解决

    2023-07-14 13:56:35
  • asp之家 软件编程 m.aspxhome.com