我试图创建像Android的解锁活动之类的东西,在那里你将锁定图像拖到圆圈之外以解锁手机。我想拖动图像并在到达某个位置时开始活动。我尝试用画布做这件事,但结果却画了我画面的其他部分。所以我尝试使用以下代码片段,我在另一篇文章中找到了:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch_ball);
windowwidth = getWindowManager().getDefaultDisplay().getWidth();
windowheight = getWindowManager().getDefaultDisplay().getHeight();
final ImageView balls = (ImageView)findViewById(R.id.ball);
balls.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
LayoutParams layoutParams = (LayoutParams) balls.getLayoutParams();
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
int x_cord = (int)event.getRawX();
int y_cord = (int)event.getRawY();
if(x_cord>windowwidth){x_cord=windowwidth;}
if(y_cord>windowheight){y_cord=windowheight;}
layoutParams.leftMargin = x_cord;
layoutParams.topMargin = y_cord;
balls.setLayoutParams(layoutParams);
break;
default:
break;
}
return true;
}
});
}
但这也不能很好地工作,因为当我触摸图像时,它会改变它的大小,也不会在屏幕上平滑移动。
你知道我怎样才能开始一项活动,让我们说当我将图像从屏幕底部拖到顶部时?
答案 0 :(得分:0)
这是因为以下行
layoutParams.leftMargin = x_cord;
layoutParams.topMargin = y_cord;
balls.setLayoutParams(layoutParams);
如果你设定了边距,那么球就会移动。