Android中View跟随手指移动效果
发布时间 - 2026-01-10 22:18:27 点击率:次最近做了一个项目中,其中遇到这样的需求要求图片移动到手指触碰的地方。具体实现代码如下所示:
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跟随手指移动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# view手指移动
# Android跟随手指移动的控件demo实例
# Android自定义View实现跟随手指移动的小兔子
# Android绘制跟随手指移动的小球
# Android自定义圆形View实现小球跟随手指移动效果
# Android实现拖动小球跟随手指移动效果
# Android实现View拖拽跟随手指移动效果
# Android View移动的六种方法小结
# Android View移动的3种方式总结
# Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决方法
# Android自定义View实现跟随手指移动
# 小编
# 在此
# 给大家
# 所示
# 所述
# 给我留言
# 感谢大家
# 触碰
# 疑问请
# 有任何
# extends
# MainActivity
# speed
# int
# private
# OnTouchListener
# OnKeyListener
# Window
# public
# WindowManager
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
制作企业网站建设方案,怎样建设一个公司网站?
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel如何使用Collections进行数据处理?(实用方法示例)
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何破解联通资金短缺导致的基站建设难题?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何快速生成橙子建站落地页链接?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何在自有机房高效搭建专业网站?
linux写shell需要注意的问题(必看)
如何快速搭建高效WAP手机网站吸引移动用户?
动图在线制作网站有哪些,滑动动图图集怎么做?
如何快速上传自定义模板至建站之星?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何在阿里云虚拟服务器快速搭建网站?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何在不使用负向后查找的情况下匹配特定条件前的换行符
IOS倒计时设置UIButton标题title的抖动问题
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何做网站制作流程,*游戏网站怎么搭建?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
高端云建站费用究竟需要多少预算?
Laravel如何实现事件和监听器?(Event & Listener实战)
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
怎样使用JSON进行数据交换_它有什么限制
如何快速生成凡客建站的专业级图册?
怎么用AI帮你设计一套个性化的手机App图标?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
如何在万网自助建站平台快速创建网站?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
js实现获取鼠标当前的位置
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
如何为不同团队 ID 动态生成多个非值班状态按钮
微信小程序 input输入框控件详解及实例(多种示例)
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
公司门户网站制作流程,华为官网怎么做?
使用spring连接及操作mongodb3.0实例
,怎么在广州志愿者网站注册?
Java类加载基本过程详细介绍
b2c电商网站制作流程,b2c水平综合的电商平台?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别

