Android拖拽图片的实现

本文介绍了如何在Android中实现图片拖拽效果。通过为图片设置TouchListener,监听滑动事件并计算更新图片位置,轻松实现拖拽功能。适用于拖拽ImageView等控件,是Android开发中的一个基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拖拽图片效果的实现其实也很简单,只要对需要拖拽的图片设置一个TouchListener即可,在Listener的方法里边对图片的位置进行计算更改就可以达到效果了。具体实现如下:

1.Activity

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.ImageView; 
 
public class DragPicActivity extends Activity { 
 
    private ImageView imageView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.drag); 
        imageView = (ImageView) findViewById(R.id.drag_pic); 
         
        imageView.setOnTouchListener(new OnTouchListener() { 
             
            private float x, y; 
            private int mx, my; 
            @Override 
            public boolean onTouch(View v, MotionEvent event) { 
                switch (event.getAction()) { 
                case MotionEvent.ACTION_DOWN: 
                    x = event.getX(); 
                    y = event.getY(); 
                case MotionEvent.ACTION_MOVE: 
                    mx = (int) (event.getRawX() - x); 
                    //减去的50是title和status bar的高度 
                    my = (int) (event.getRawY() - y - 50); 
                    v.layout(mx, my, mx + v.getWidth(), my + v.getHeight()); 
                    break; 
                } 
                 
                return true; 
            } 
        }); 
    } 
     
} 
2.layout
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:orientation="vertical" > 
 
    <ImageView 
        android:id="@+id/drag_pic" 
        android:layout_width="50dip" 
        android:layout_height="50dip" 
        android:src="@drawable/ic_launcher" /> 
 
</LinearLayout> 

这样拖拽图片的效果就出来了,同样的拖拽其他控件应该也是一样的做法,没测试,但拖拽图片其实就是拖拽ImageView嘛,so easy是吧!

记录学习的点点滴滴,让知识掌握得更牢固。也为回忆,嘿嘿~~Come on,Iceshow!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值