自定义了一个imageview控件,可以随意拖动和缩放。
遇到了一个棘手的问题,就是每当拖动完控件以后,执行某些操作的时候(比如说触发虚拟键盘),该控件的位置就会还原到初始位置。
经过尝试,问题已经解决,
解决方法是:捕捉ACTION_UP动作,当发现这个动作以后执行方法onTouchUp()
附上该方法代码如下
<span style="font-size:18px;">void onTouchUp(MotionEvent event) {
RelativeLayout.LayoutParams param=new RelativeLayout.LayoutParams(Width,Height);//Width、Height是操作之后的图片宽度和高度
param.leftMargin = left;//操作之后控件左上角的横坐标
param.topMargin = right;//操作之后控件左上角的纵坐标
img.setLayoutParams(param);
}</span>
至于控件的Width、Height、Left、Right等信息,最好是直接从自定控件中建一个方法来获取,比如获取图片宽度可以在自定义控件中添加如下代码: