gpt4 book ai didi

android - 如何将 imageview 移动到右侧获取 android 中的 Activity ?

转载 作者:太空狗 更新时间:2023-10-29 12:53:17 29 4
gpt4 key购买 nike

我已经在我的应用程序中实现了一个带有 ImageView 的应用程序,我想在用户将图像向右移动时实现,然后我想获得下一个 Activity 。我如何编写事件或任何其他代码来将图像移动到右侧?

我将 imageView 代码用作:

   (ImageView)findViewById(R.id.slide) //event for move right here

Intent it = new Intent(Slide.this,NextActivity.class);
startActivity(it);

请任何人帮助我...

最佳答案

所以,如果我理解正确的话,您想在屏幕上移动一个 ImageView,拖动它,当您用它击中某个位置时您想开始另一个 Activity 吗?

如果是这样,您可以尝试使用下面的代码...让您在屏幕上拖动 ImageView

只需将一个 onTouchListener 添加到您要滑动(移动/拖动)的 imageView

yourSlideImageViewObject.setOnTouchListener(new View.OnTouchListener() 
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
onSlideTouch(v, event);
return false;
}
});

然后添加这段代码来处理触摸事件

public void onSlideTouch( View view, MotionEvent event )
{
//When the user pushes down on an ImageView
if ( event.getAction() == MotionEvent.ACTION_DOWN )
{
inDragMode = true; //Set a variable so we know we started draggin the imageView
//Set the selected ImageView X and Y exact position
selectedImageViewX = Math.abs((int)event.getRawX()-((ImageView)view).getLeft());
selectedImageViewY = Math.abs((int)event.getRawY()-((ImageView)view).getTop());
//Bring the imageView in front
((ImageView)view).bringToFront();
}

//When the user let's the ImageView go (raises finger)
if ( event.getAction() == MotionEvent.ACTION_UP )
{
inDragMode = false; //Reset the variable which let's us know we're not in drag mode anymore
}

//When the user keeps his finger on te screen and drags it (slides it)
if ( event.getAction() == MotionEvent.ACTION_MOVE )
{
//If we've started draggin the imageView
if ( inDragMode )
{
//Get the imageView object
ImageView slide = (ImageView)findViewById(R.id.slide);
//Get a parameters object (THIS EXAMPLE IS FOR A RELATIVE LAYOUT)
RelativeLayout.LayoutParams params = RelativeLayout.LayoutParams)slide.getLayoutParams();
//Change the position of the imageview accordingly
params.setMargins((int)event.getRawX()-selectedImageViewX, (int)event.getRawY()-selectedImageViewY, 0, 0);
//Set the new params
slide.setLayoutParams(params);

//If we hit a limit with our imageView position
if( slideImageView_position is inside an interval )
{
//Open another activity
Intent it = new Intent(Slide.this,NextActivity.class);
startActivity(it);
}
}
}

}

上面应该将您的 ImageView 拖过屏幕。

您还可以在 MotionEvent.ACTION_MOVE 事件中实现....以限制 ImageView 在屏幕上的移动。因此,请检查您手指在屏幕上的新坐标,并检查它们是否越界。如果是这样,那么什么都不做。如果它们没有越界,则更改 ImaveView 的左边距和上边距。

此外,在 MotionEvent.ACTION_UP 事件中,检查 ImaveView 的左边距是否超过预定义的限制(这意味着用户将 imageView 滑过您的预期位置)。如果是这样,您可以继续做任何您想做的事情,这意味着开始一项 Activity 。或者,如果您不想在用户拖动时打开 Activity ,而不仅仅是在他从 imageView 中移开手指之后,那么只需执行 if () 我已经在 MotionEvent.ACTION_MOVE 事件下编写。在那里插入你想要的间隔,所以当 imageView 被拖动到那个间隔内时, Activity 开始。

如果你不明白,请问:)这里很晚了,我累了,所以我可能没解释清楚:D

关于android - 如何将 imageview 移动到右侧获取 android 中的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643498/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com