通过使用手势,我可以像这张图片一样拖动吗?我的意思是,必须拖动作为刻度线。因此必须使用onClickListener。在执行之后,它应该能够最终在显示部分中打开另一个屏幕。
当我用手时,我的意思是如果我勾选了刻度线,那么它应该可以调用特定的方法。
我想通过使用Gestures编写代码,它应该能够执行或拖动我在下面的图像时这样做。功能如何在手势中起作用,我应该如何编写代码?
我怎么能这样做?有人可以建议我吗?
答案 0 :(得分:0)
我相信你要求的是this question。这是prateek-raj提供的源代码。顺便提一下,虽然您提供的示例复选标记图像很可爱,但Android并不关心您的图像是球形图像,复选标记还是a squirrel holding a bazooka,因此以下代码仍适用。
package com.examples.Touchmoveimage;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout.LayoutParams;
public class Touchmoveimage extends Activity {
int windowwidth;
int windowheight;
private LayoutParams layoutParams ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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 -25;
layoutParams.topMargin = y_cord - 75;
balls.setLayoutParams(layoutParams);
break;
default:
break;
}
return true;
}
});
}
}
这解决了你问题的大部分,但并不是全部。你也问过,
执行后,它应该能够打开另一个屏幕 终于在显示部分。
答案可能涉及创建一个Intent对象(在构造函数中定义新活动并启动它。有一个关于主题here的好教程。它的核心(切换活动)正在进行是这样的:
Intent k = new Intent("com.example.ActivityYouWantToGoTo");
startActivity(k);
您需要完成与创建新活动相关的所有步骤。 (例如,不要忘记更新清单。)要使代码执行两者(a)拖动复选框并(b)切换到新活动,您需要结合以上内容概念。您没有告诉我们在什么情况下您想要拖动对象或切换活动(例如,在拖动它一次之后?当它被拖动到特定位置?等等),但是您将要定义这些条件和然后在遇到新活动时调用它。