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,手指,移动
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
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
![](https://img.aspxhome.com/file/2023/1/83421_0s.png)
Android卫星菜单效果的实现方法
2023-10-18 12:41:34
![](https://img.aspxhome.com/file/2023/3/115983_0s.gif)
WinForm中实现picturebox自适应图片大小的方法
2022-09-07 21:14:01
如何使用Java给您的图片瘦身之Thumbnailator技术
2023-10-31 10:25:52
![](https://img.aspxhome.com/file/2023/0/132030_0s.jpg)
C#中的高效IO库System.IO.Pipelines
2022-11-16 03:43:06
Android自定义View倒计时圆
2022-01-06 17:42:30
![](https://img.aspxhome.com/file/2023/1/126731_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/1/70961_0s.png)
C#中使用JSON.NET实现JSON、XML相互转换
2022-12-11 04:34:12
swing登录注册界面设计
2023-11-24 17:27:21
![](https://img.aspxhome.com/file/2023/5/62825_0s.jpg)
Android实现ListView控件的多选和全选功能实例
2023-01-04 02:26:50
C#实现线程安全的简易日志记录方法
2023-12-20 22:45:17
![](https://img.aspxhome.com/file/2023/8/104308_0s.png)
java中Class.getMethods()和Class.getDeclaredMethods()方法的区别
2021-05-28 23:05:46
springboot读取文件,打成jar包后访问不到的解决
2023-07-14 13:56:35