像幻灯片一样的imageview

时间:2011-10-21 16:07:26

标签: android imageview slideshow ontouchlistener touch-event

大家好我想用ImageView作为幻灯片,在屏幕右边触摸你显示下一个图像,如果触摸在左边显示上一个图像, 我已经尝试过实现这个功能,但是没有得到ImageView的响应,看看logcat我发现它没有发送TouchEvent。

public class Prova4Activity extends Activity implements OnTouchListener {
/** Called when the activity is first created. */
ImageView image;
Bitmap trash = loadImageFromUrl("http://www.televideo.rai.it/televideo/pub/tt4web/   Nazionale/16_9_page-100.6.png");
ImageView imgpag;
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.EDGE_RIGHT){
    trash.recycle();
     trash = null;
     trash = loadImageFromUrl("http://www.televideo.rai.it/televideo/pub/tt4web/Nazionale/16_9_page-100.6.png");
     image.setImageBitmap(trash);

     }else if(event.getAction() == MotionEvent.EDGE_LEFT){
         trash.recycle();
         trash = null;
         trash = loadImageFromUrl("http://www.televideo.rai.it/televideo/pub/tt4web/  Nazionale/16_9_page-100.5.png");
         imgpag.setImageBitmap(trash);

     }
imgpag.setScaleType(ScaleType.FIT_XY);

return true;
}
@Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    imgpag = (ImageView)findViewById (R.id.imgpag); 
    imgpag.setImageBitmap(trash);
    imgpag.setOnTouchListener(this);

    }
}

我不会使用图库,因为图像很小,并且事先并不知道图像的数量,因为我根据用户的操作直接从Inernet加载它们

1 个答案:

答案 0 :(得分:0)

这可能不是实现此目的的最佳方式,但您可以尝试以下方法:

在屏幕上设置两个按钮 - 一个在右上角,一个在左上角。 (如果您全屏显示ImageView,那么最好使用FrameLayout - bt确保按钮在前面) 设置按钮属性,如

<Button android:id="@+id/button1" android:layout_width="70dp" android:layout_height="40dp" android:background="@null"/>

这将确保按钮不可见

然后在这些按钮的OnClickListeners上添加prev和next的逻辑

希望这会对你有所帮助