Thank you, check this code, it may be useful for you to rotate the bitmap image. Here I have an example of an aquarium fish, it should be moved from left to right and turned over and continue moving from right to left and vice versa. here is the code for you ..
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); fish = BitmapFactory.decodeResource(getResources(), R.drawable.fish); v = new OurView(this);
public class OurView extends SurfaceView implements Runnable {
Thread t = null; SurfaceHolder holder; boolean isitOK = false; String Flag = "right"; Bitmap rotatedBitmap=null; Matrix rotateRight = new Matrix(); Matrix rotateLeft = new Matrix(); Bitmap rSprite=null; Bitmap lSprite=null; public OurView(Context context) { super(context); holder = getHolder(); rotateLeft.setScale(-1, 1); rSprite = Bitmap.createBitmap(fish, 0, 0, fish.getWidth(), fish.getHeight(), rotateRight, true); lSprite = Bitmap.createBitmap(fish, 0, 0, fish.getWidth(), fish.getHeight(), rotateLeft, true); } @Override public void run() { // TODO Auto-generated method stub while (isitOK == true) { if (!holder.getSurface().isValid()) { continue; } Canvas canvas = holder.lockCanvas(); canvas.drawBitmap(bg, 0, 0, null); if(Flag == "right") canvas.drawBitmap(lSprite, x, y, null); if(Flag == "left") canvas.drawBitmap(fish, x, y, null); if (Flag == "right" && x <= 60) { x++; if (x == 60) { Flag = "left"; // canvas.drawBitmap(rSprite, 0, fish.getWidth(), null); canvas.drawBitmap(fish, x, y, null); } } if (Flag == "left" && x >= 0) { x--; if (x == 0) { Flag = "right"; canvas.drawBitmap(fish, x, y, null); } } holder.unlockCanvasAndPost(canvas); } }