要求:一个图片从上到下移动,在移动过程中,如果点击,那么可以拖拽图片,放开后继续向下移动。
问题:当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);
}
}
分享到:
相关推荐
在窗口处于正常状态时(可以通过拖动标题栏来移动窗口),如果在标题栏上按下鼠标左键, 系统会捕获鼠标,所以直到放开鼠标左键后,窗口是不会收到鼠标消息的。 如果窗口处于最大化状态,或者在客户区按下鼠标、移...
然后移动鼠标到边框处,当鼠标指针变成一个四个箭头标志时,按住“Shift”键的同时按下鼠标左键,拖动鼠标至要移动的目的区域(可以从鼠标指针右下方的黄色提示框中获知是否到达目标位置),放开鼠标左键即完成移动...
8、按中键向下移动,删除选中内容,相当于按Edit菜单里的DELETE项 针对Saber: 1. 向上滚动滚轮 --> 放大,相当于"PageUp"键 2. 向下滚动滚轮 --> 缩小,相当于"PageDown"键 针对PC Schematic(V11有测试)...
按住Shift 键,同时按下键盘的左右箭头,可以向左、右移动光标,每按一次移动一个 音符位置; 注:不按住Shift 键,按下键盘的左右箭头,如果移动到的位置有音符,默认会选中该 音符,同时隐藏光标; 2、选中 ...
* 清除办法:如果不需要装硬盘,请到主菜单-异常处理中,把硬盘错这个异常类型的声音告警打“ × ” ;如果装了硬盘,请到主菜单-管理工具-硬盘管理中,把硬盘格式化;如果仍未解决,可能是硬盘坏,请更换硬盘。 三...
然后移动鼠标到边框处,当鼠标指针变成一个四个箭头标志时,按住“Shift”键的同时按下鼠标左键,拖动鼠标至要移动的目的区域(可以从鼠标指针右下方的黄色提示框中获知是否到达目标位置),放开鼠标左键即完成移动...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
2. 选中鼠标沿单键从 C2 移动到 C4,然后放开鼠标,即可建立一个双键。 六、在结构上加原子标记 1. 用鼠标指向原子,见以下图左。 2. 双击原子,见以下图中。 3. 在文本框中输入字母 O,见以下图右。 七、复制...
1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件...
移动虽有比较好的运动效果,但移动一次后便需恢复到原位,而《几何画板》中的动画功能却能很生动地连续表现运动效果。用动画可以非常方便地描画出运动物体的运动轨迹,而且轨迹的生成是动态的、逐步的,表现出轨迹...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件...
1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件...
此时可以通过方向键来拖动窗体,移动到需要停靠的位置后,回车即可。 - **评论**:对于习惯使用键盘的人来说,这是一种较为便捷的方式,但可能不如直接使用鼠标来得方便。 #### #006 用键盘调整工具窗体的尺寸 - ...
- **Flash坐标系统**:左上角为原点,向下为正y轴。 - **三角形的边**:邻边、对边等。 ##### 3.3 三角函数 - **正弦**:对应角的对边与斜边的比例。 - **余弦**:对应角的邻边与斜边的比例。 - **正切**:对应角的...
在“Mix Table(混音面盘)”区域有四个按钮,分别提供了不同的效果,比如单击第二个按钮,下方就会显示出Loop特效设置区,这里我们可以选择多种Loop添加到音乐中,利用这一功能可为音乐增加声音、弦乐、颤音、噪音等...