当前位置:操作系统 > 安卓/Android >>

Android 技术总结(007)—— 随手指移动的ImageView

效果图。
首次进入程序。

手指点击屏幕上的任意位置,图片会随之移动。


工程结构。

布局文件。
[html] 
<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/FrameLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#f0f0f0" > 
 
    <com.sgw.move.MoveImageView 
        android:id="@+id/ImageView01" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/icon" > 
    </com.sgw.move.MoveImageView> 
 
</FrameLayout> 
实现代码。
[java] 
public class MoveImageView extends ImageView { 
 
    public MoveImageView(Context context) { 
        super(context); 
    } 
 
    public MoveImageView(Context context, AttributeSet attrs) { 
        super(context, attrs, 0); 
    } 
 
    public MoveImageView(Context context, AttributeSet attrs, int defStyle) { 
        super(context, attrs, defStyle); 
    } 
 
    public void setLocation(int x, int y) { 
        this.setFrame(x, y - this.getHeight(), x + this.getWidth(), y); 
    } 
 
    // 移动 
    public boolean autoMouse(MotionEvent event) { 
        boolean rb = false; 
        switch (event.getAction()) { 
        case MotionEvent.ACTION_MOVE: 
            this.setLocation((int) event.getX(), (int) event.getY()); 
            rb = true; 
            break; 
        } 
        return rb; 
    } 

[java] 
public class TestImageViewMove extends Activity { 
    private MoveImageView moveImageView; 
 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        moveImageView = (MoveImageView) this.findViewById(R.id.ImageView01); 
    } 
 
    @Override www.zzzyk.com

    public boolean onTouchEvent(MotionEvent event) { 
        moveImageView.autoMouse(event); 
        return false; 
    } 

 作者:manoel

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,