我正在开发一款Android应用程序,希望能够通过手指触摸滑动图片。我已经实现了一个onClickListener
,可以通过它来滑动图片,但我不知道如何实现手指触摸功能。
请建议任何方法,如何通过手指触摸滑动图片。任何建议、教程或方法都将有所帮助。
你可以使用onTouchListner方法代替onClickListner。以下是一个onTouchListners的示例...
public class abc extends Activity implements OnTouchListener
{
ImageView img;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.one);
img = (ImageView) findViewById(R.id.imageView1);
img.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event)
{
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
{
// Here u can write code which is executed after the user touch on the screen
break;
}
case MotionEvent.ACTION_UP:
{
// Here u can write code which is executed after the user release the touch on the screen
break;
}
case MotionEvent.ACTION_MOVE:
{
// Here u can write code which is executed when user move the finger on the screen
break;
}
}
return true;
}
ViewFlipper
。这可以帮助你获得你期望的外观。
这个链接可能有所帮助。
也可以看看这个。
或者尝试以下方法,在你的xml中只添加这些:<ViewFlipper android:id="@+id/flipper"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ViewFlipper>
不需要用任何ImageView来包含。
现在在你的代码中这样做。
假设你已经将你的图片存储在一个像这样的数组中,
int gallery_grid_Images[]={R.drawable.gallery_image_1,R.drawable.gallery_image_2,R.drawable.gallery_image_3,
R.drawable.gallery_image_4,R.drawable.gallery_image_5,R.drawable.gallery_image_6,R.drawable.gallery_image_7,
R.drawable.gallery_image_8,R.drawable.gallery_image_9,R.drawable.gallery_image_10
};
现在在你的onCreate()方法中:
viewFlipper = (ViewFlipper) findViewById(R.id.flipper);
for(int i=0;i<gallery_grid_Images.length;i++)
{
// This will create dynamic image view and add them to ViewFlipper
setFlipperImage(gallery_grid_Images[i]);
}
现在将此方法添加到您的活动中,
private void setFlipperImage(int res) {
Log.i("Set Filpper Called", res+"");
ImageView image = new ImageView(getApplicationContext());
image.setBackgroundResource(res);
viewFlipper.addView(image);
}
就是这样,现在使用viewFlipper.showNext();
和viewFlipper.showPrevious();
方法,你可以展示你的动态图片。
视图可以捕获触摸事件--请查看OnTouchEvent,它允许您捕获触摸下和触摸上等MotionEvent。您可以使用处理程序循环,在触摸下事件后将图像/视图移动到当前触摸的位置,直到触摸上事件。