Here is a simplified explanation of how you can do it.
//Load the image containing the background image
Bitmap imgSrc = BitmapFactory.decodeResource(this, R.drawable.background_image);
//Crop it
Bitmap croppedImg = BitmapBitmap.createBitmap(imgSrc, 0, y, imgSrc.getWidth(), cropHeight);
This code portion will crop your image into a smaller part and store the cropped image in the variable croppedImage. To better understand how the cropping occurs, check here. The variables y and cropHeight are, respectively, the ordinate of the point from which you want to start the cropping and the height of the cropped image that is being created.
To implement this the way you want, you have to create a "time loop" (this might help you creating one), that is, a structure that permits you to execute a block of code every X seconds, milliseconds, etc. On every loop, you will increment the variable y and draw the background. Be careful thought, for y must not go out of the background image's bound. Also make sure that the background image isn't too big, otherwise you will have memory problems (that you can solve by scaling the image when loading it).