If you're hitting performance issues, at this point in your code...
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.aquarium, options);
...you are decoding a bitmap every frame. That is expensive and should be avoided.
Instead read in the bitmap once and then use it to draw to your canvas every frame.
As well, you should try not to instantiate anything in the draw loop. Everything you create there has to be Garbage Collected and that will slow things down. Anything that is an object try to instantiate outside of the draw loop. So the other thing you could do to make this perform a little faster is to do this in the constructor:
Paint paint = new Paint();