`
yangsongjing
  • 浏览: 248965 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

图片拖动效果

阅读更多

拖拽图片效果

方法一:

    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 DragSample01 extends Activity { 
        ImageView img; 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.drag_sample01);         
            img = (ImageView)findViewById(R.id.img_view); 
             
            img.setOnTouchListener(new OnTouchListener(){            
                private int mx, my;          
                public boolean onTouch(View v, MotionEvent event) { 
                    switch(event.getAction()) {              
                    case MotionEvent.ACTION_MOVE: 
                        mx = (int)(event.getRawX()); 
                        my = (int)(event.getRawY() - 50); 
                         
                        v.layout(mx - img.getWidth()/2, my - img.getHeight()/2, mx + img.getWidth()/2, my + img.getHeight()/2); 
                        break; 
                    } 
                    return true; 
                }}); 
        } 
    } 


方法二:

    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 DragSample01 extends Activity { 
        ImageView img; 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.drag_sample01);         
            img = (ImageView)findViewById(R.id.img_view); 
             
            img.setOnTouchListener(new OnTouchListener(){            
                private float x, y; 
                private int mx, my;          
                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); 
                        my = (int)(event.getRawY() - 50 - y); 
                         
                        v.layout(mx, my, mx + v.getWidth(), my + v.getHeight()); 
                        break; 
                    } 
                    return true; 
                }}); 
        } 
    } 

 

//////////------------------

 

拖拽图片效果

方法一:
    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 DragSample01 extends Activity {   
        ImageView img;   
        @Override   
        public void onCreate(Bundle savedInstanceState) {   
            super.onCreate(savedInstanceState);   
            setContentView(R.layout.drag_sample01);           
            img = (ImageView)findViewById(R.id.img_view);   
               
            img.setOnTouchListener(new OnTouchListener(){              
                private int mx, my;            
                public boolean onTouch(View v, MotionEvent event) {   
                    switch(event.getAction()) {                
                    case MotionEvent.ACTION_MOVE:   
                        mx = (int)(event.getRawX());   
                        my = (int)(event.getRawY() - 50);   
                           
                        v.layout(mx - img.getWidth()/2, my - img.getHeight()/2, mx + img.getWidth()/2, my + img.getHeight()/2);   
                        break;   
                    }   
                    return true;   
                }});   
        }   
    }   


方法二:

    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 DragSample01 extends Activity {   
        ImageView img;   
        @Override   
        public void onCreate(Bundle savedInstanceState) {   
            super.onCreate(savedInstanceState);   
            setContentView(R.layout.drag_sample01);           
            img = (ImageView)findViewById(R.id.img_view);   
               
            img.setOnTouchListener(new OnTouchListener(){              
                private float x, y;   
                private int mx, my;            
                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);   
                        my = (int)(event.getRawY() - 50 - y);   
                           
                        v.layout(mx, my, mx + v.getWidth(), my + v.getHeight());   
                        break;   
                    }   
                    return true;   
                }});   
        }   
    }   



拖动按钮到处跑
1. 布局文件

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <Button android:id="@+id/btn" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:text="拖动看看~~" /> 
    </LinearLayout> 


2. 代码

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.util.DisplayMetrics; 
    import android.view.MotionEvent; 
    import android.view.View; 
    import android.view.View.OnTouchListener; 
    import android.widget.Button; 
     
    public class DraftTest extends Activity { 
        /** Called when the activity is first created. */ 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
     
            final Button btn = (Button) findViewById(R.id.btn); 
     
            btn.setOnTouchListener(new OnTouchListener() { 
                int[] temp = new int[] { 0, 0 }; 
     
                public boolean onTouch(View v, MotionEvent event) { 
     
                    int eventaction = event.getAction(); 
     
                    int x = (int) event.getRawX(); 
                    int y = (int) event.getRawY(); 
     
                    switch (eventaction) { 
     
                    case MotionEvent.ACTION_DOWN: // touch down so check if the 
                        temp[0] = (int) event.getX(); 
                        temp[1] = y - v.getTop(); 
                        break; 
     
                    case MotionEvent.ACTION_MOVE: // touch drag with the ball 
                        v.layout(x - temp[0], y - temp[1], x + v.getWidth() 
                                - temp[0], y - temp[1] + v.getHeight()); 
     
    //                  v.postInvalidate(); 
                        break; 
     
                    case MotionEvent.ACTION_UP: 
                        break; 
                    } 
     
                    return false; 
                } 
     
            }); 
     
        } 
    } 



另一种:

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.util.DisplayMetrics; 
    import android.view.MotionEvent; 
    import android.view.View; 
    import android.view.View.OnTouchListener; 
    import android.widget.Button; 
     
    public class DraftTest extends Activity { 
        /** Called when the activity is first created. */ 
     
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
     
            DisplayMetrics dm = getResources().getDisplayMetrics(); 
            final int screenWidth = dm.widthPixels; 
            final int screenHeight = dm.heightPixels - 50; 
     
            final Button b = (Button) findViewById(R.id.btn); 
     
            b.setOnTouchListener(new OnTouchListener() { 
     
                int lastX, lastY; 
     
                public boolean onTouch(View v, MotionEvent event) { 
                    // TODO Auto-generated method stub 
                    switch (event.getAction()) { 
                    case MotionEvent.ACTION_DOWN: 
                        lastX = (int) event.getRawX(); 
                        lastY = (int) event.getRawY(); 
                        break; 
                    case MotionEvent.ACTION_MOVE: 
                        int dx = (int) event.getRawX() - lastX; 
                        int dy = (int) event.getRawY() - lastY; 
     
                        int left = v.getLeft() + dx; 
                        int top = v.getTop() + dy; 
                        int right = v.getRight() + dx; 
                        int bottom = v.getBottom() + dy; 
     
                        if (left < 0) { 
                            left = 0; 
                            right = left + v.getWidth(); 
                        } 
     
                        if (right > screenWidth) { 
                            right = screenWidth; 
                            left = right - v.getWidth(); 
                        } 
     
                        if (top < 0) { 
                            top = 0; 
                            bottom = top + v.getHeight(); 
                        } 
     
                        if (bottom > screenHeight) { 
                            bottom = screenHeight; 
                            top = bottom - v.getHeight(); 
                        } 
     
                        v.layout(left, top, right, bottom); 
     
                        lastX = (int) event.getRawX(); 
                        lastY = (int) event.getRawY(); 
     
                        break; 
                    case MotionEvent.ACTION_UP: 
                        break; 
                    } 
                    return false; 
                } 
            }); 
        } 
    } 

分享到:
评论

相关推荐

    js实现的图片拖动效果

    在JavaScript(JS)中实现图片拖动效果是网页交互中常见的功能之一,它极大地提升了用户体验。这个技术主要涉及HTML、CSS以及JavaScript的核心概念,包括事件处理、DOM操作和坐标计算。接下来,我们将深入探讨如何...

    android 图片拖拽效果

    这个"android 图片拖拽效果"项目提供了一个详细实现图片拖动功能的源码,使用者可以将其直接导入到自己的Android项目中进行研究和使用。 在Android中,实现图片拖拽通常涉及到以下几个关键知识点: 1. **...

    Android开发之google源码——图片拖拽效果的实现

    在Android应用开发中,实现图片拖拽效果是一个常见的需求,特别是在设计交互丰富的用户界面时。本文将基于提供的“Android开发之google源码——图片拖拽效果的实现”资源,深入探讨如何在Android平台上创建这样的...

    JavaScript图片拖动效果

    在JavaScript中实现图片拖动效果是一项常见的交互设计技术,它能增强用户在网页上的操作体验。这个技术主要基于HTML5的拖放API(Drag and Drop API),通过JavaScript事件监听和处理来实现。以下是对这一技术的详细...

    js图片拖拽效果制作列表图片拖拽排序代码

    在JavaScript编程中,实现图片拖拽效果以及列表图片的拖拽排序是一项常见且实用的技术。这一功能常用于创建用户友好的交互式应用,比如在线相册、任务管理器或者自定义布局的界面。本篇文章将深入探讨如何使用...

    Android_图片拖动效果

    在Android开发中,实现图片拖动效果是一项基本且有趣的功能,它可以带给用户直观、互动的体验。本教程将深入探讨如何在Android应用中创建类似iPhone的图片拖动效果。 首先,我们需要了解Android中的触摸事件处理...

    jquery实现九宫格图片拖动效果

    在本文中,我们将深入探讨如何使用jQuery库来实现一个九宫格图片拖动效果,让图片可以在网格中自由拖拽并排序。这个功能通常应用于图片展示、拼图游戏或者个性化布局的设计中,能够提供用户友好的交互体验。 首先,...

    图片拖拽效果

    在网页开发中,实现动态交互效果能够极大地提升用户体验。...通过理解并运用这些基本原理,开发者可以扩展这个功能,使其适应更复杂的场景,比如限制图片拖动范围、实现多图拖拽或者添加拖放事件回调等功能。

    Android图片拖拽效果代码.zip

    在Android开发中,实现图片拖拽效果是一项常见的需求,它能为用户带来更直观和交互式的体验。这个压缩包文件“Android图片拖拽效果代码.zip”包含了一个示例项目,展示了如何在Android应用中实现这一功能。下面我们...

    android 图片拖动效果(Gallery)

    在Android开发中,实现图片拖动效果,如“Gallery”组件,是一种常见的需求,它可以为用户提供流畅的图片浏览体验。Gallery是Android SDK提供的一种水平滚动的视图组件,用户可以通过左右滑动来浏览图片,类似于iOS...

    android 图片拖动效果(Gallery控件)

    下面我们将深入探讨`Gallery`控件的工作原理、使用方法以及如何创建图片拖动效果。 ### 1. `Gallery`控件概述 `Gallery`控件是Android SDK中的一个`ViewGroup`,继承自`AbsSpinner`,它允许用户水平滚动一系列的...

    android图片拖动效果

    ### Android 图片拖动效果详解 #### 一、概述 在移动应用开发中,提供直观易用的用户界面是提升用户体验的重要因素之一。本篇文章主要介绍如何在Android应用中实现类似iPhone上的图片拖动效果。这种效果允许用户...

    【JavaScript源代码】js实现简单图片拖拽效果.docx

    ### JavaScript 实现简单图片拖拽效果 #### 一、引言 在Web开发中,交互式体验对于提升用户界面友好度至关重要。其中一项常见的交互功能就是拖拽效果,特别是图片的拖拽。本文将深入探讨如何使用原生JavaScript来...

    Android模拟Iphone图片拖动效果.rar

    Android安卓代码模拟Iphone图片拖动效果,似乎这个效果Android原生系统中就有啊,就是用手指滑来滑去拖动图片的效果,在Android中,我是自己写代码实现的,也算是对苹果IOS中的图片拖动进行了一个模拟。  注:部分...

    让你的图片实现可以拖动的效果

    这段代码实现了一个功能,即让网页中的图片具备可拖动的效果。主要涉及到HTML、CSS和JavaScript三方面的知识。 首先,我们来看HTML部分。在这里,只有一个`&lt;img&gt;`标签用于显示图片,其`src`属性指定了图片的路径,`...

    Android GridView图片拖拽效果 源码

    DraggableView GridView项目拖拽效果, 自顶一个SampleGridContainer 集成FrameLayout实现 DragController.IDragViewGroup ,里面主要提供了onDragStart ,onDragEnd,onMoveEvent 等几个方法实现拖拽效果

    网页上图片任意拖拽效果

    简单的图片任意拖拽效果,任意拖拽到任意位置,代码简单 易懂

    JS鼠标拖拽图片更换位置效果代码.zip

    - 使用CSS的`transition`属性或JavaScript的`requestAnimationFrame`来实现平滑的动画效果,使图片拖动更流畅。 8. **代码组织**: - 良好的代码组织和模块化设计,例如将拖拽逻辑封装成一个独立的函数或类,便于...

    仿360鼠标拖动图片切换效果

    【标题】"仿360鼠标拖动图片切换效果"涉及的是在Qt环境中实现一个类似于360浏览器图片浏览的交互功能,通过鼠标拖动来实现图片的平滑切换,并结合了Mac系统的动画效果,给予用户更为流畅和自然的操作体验。...

    WPF实现图片随意拖动

    在实现图片拖动功能时,最常用的是`Image`控件,它可以显示图像。我们要做的就是赋予这个`Image`控件拖放的能力。 1. **创建WPF项目** 首先,创建一个新的WPF应用程序项目。在Visual Studio中,选择“文件”&gt;...

Global site tag (gtag.js) - Google Analytics