要求:一个图片从上到下移动,在移动过程中,如果点击,那么可以拖拽图片,放开后继续向下移动。
问题:当imageview.startAnimation(animation)之后,imageview实际上并没有移动。点击imageview的初始位置时,可以监听到onclick事件。但是点击移动中的图片时,就无法监听到onclick事件了。
想法:如果可以得到animation移动过程中的每个时刻的位置,再设置imageview的位置,这样,效果就是点击移动中的图片时能监听到onclick。
package com.tianlv.study.temp;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.AbsoluteLayout;
import android.widget.ImageView;
public class temp extends Activity {
private Handler mHandler = new Handler();
private Runnable mMoveImage = new Runnable(){
public void run() {
moveImage();
}
};
private ImageView iView;
private int downMouseY;
private AbsoluteLayout.LayoutParams downImagePms;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iView = (ImageView) findViewById(R.id.ImageView01);
iView.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View view, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
Log.i("debug", "stop");
downMouseY = (int) event.getRawY();
downImagePms = (AbsoluteLayout.LayoutParams) iView.getLayoutParams();
mHandler.removeCallbacks(mMoveImage);
}
if(event.getAction() == MotionEvent.ACTION_UP){
Log.i("debug", "move");
mHandler.postDelayed(mMoveImage, 500);
}
if(event.getAction() == MotionEvent.ACTION_MOVE){
dragImage((int) event.getRawY()- downMouseY);
}
return true;
}
});
}
private void moveImage(){
AbsoluteLayout.LayoutParams oldLayPms = (AbsoluteLayout.LayoutParams) iView.getLayoutParams();
AbsoluteLayout.LayoutParams newLayPms = new AbsoluteLayout.LayoutParams(oldLayPms.width, oldLayPms.height, oldLayPms.x, oldLayPms.y+1);
iView.setLayoutParams(newLayPms);
mHandler.removeCallbacks(mMoveImage);
if(newLayPms.y < 300){
mHandler.postDelayed(mMoveImage, 500);
}
}
private void dragImage(int y){
AbsoluteLayout.LayoutParams newLayPms = new AbsoluteLayout.LayoutParams(downImagePms.width, downImagePms.height, downImagePms.x, downImagePms.y+y);
iView.setLayoutParams(newLayPms);
}
}
分享到:
相关推荐
在窗口处于正常状态时(可以通过拖动标题栏来移动窗口),如果在标题栏上按下鼠标左键, 系统会捕获鼠标,所以直到放开鼠标左键后,窗口是不会收到鼠标消息的。 如果窗口处于最大化状态,或者在客户区按下鼠标、移...
8、按中键向下移动,删除选中内容,相当于按Edit菜单里的DELETE项 针对Saber: 1. 向上滚动滚轮 --> 放大,相当于"PageUp"键 2. 向下滚动滚轮 --> 缩小,相当于"PageDown"键 针对PC Schematic(V11有测试)...
按住Shift 键,同时按下键盘的左右箭头,可以向左、右移动光标,每按一次移动一个 音符位置; 注:不按住Shift 键,按下键盘的左右箭头,如果移动到的位置有音符,默认会选中该 音符,同时隐藏光标; 2、选中 ...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
一是移动鼠标到窗口上下左右边框上,当看到鼠标变成上下或左右双箭头时,按下鼠标 左键不要松开,然后拖动窗口边框到合适的地方放开鼠标左键。 二是移动鼠标到窗口任意一角当看到鼠标变成斜双箭头时,按下鼠标左键...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件...
移动虽有比较好的运动效果,但移动一次后便需恢复到原位,而《几何画板》中的动画功能却能很生动地连续表现运动效果。用动画可以非常方便地描画出运动物体的运动轨迹,而且轨迹的生成是动态的、逐步的,表现出轨迹...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件...
1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件...
拖动排序,从名字就不难想像,就是按住一行数据拖到想要的排序位置,保存新的排序队列。 思路 首先给列表行建立锚点,绑定mousedown和mouseup事件,当鼠标移动到想要插入的位置时,将对象行移动到目标行,然后对其...
在“Mix Table(混音面盘)”区域有四个按钮,分别提供了不同的效果,比如单击第二个按钮,下方就会显示出Loop特效设置区,这里我们可以选择多种Loop添加到音乐中,利用这一功能可为音乐增加声音、弦乐、颤音、噪音等...
13.2.1移动一个关节 13.2.2移动两个关节 13.3自动运行 13.3.1创建自然的行走循环 13.3.2动态化 13.4 使它真正地行走 13.4.1给它一些空间 13.4.2加入重力 13.4.3控制碰撞 13.4.4控制反应 13.4.5屏幕折回 13.5小结 第...
" " " " 向下拖动至末个单元格放开。 " " " " " " " "活动三:小组协作探究学习 " " " "大家上周完成的作品我都已经发到各小 " " " "组的电脑上,请大家结合我刚才介绍的 " " " "五个方面内容进行小组协作完成作业...