Von einer 10 k ft-Ebene möchten Sie eine neue Bitmap erstellen und eine Transformationsmatrix angeben, um die Bitmap umzukehren.
Dies ist vielleicht etwas übertrieben, aber hier ist eine kleine Beispielanwendung, die veranschaulicht, wie dies zu tun ist. Wie geschrieben, dreht die Transformationsmatrix-Vorskalierung von (-1,0f, 1,0f) das Bild in der x-Richtung, eine Vorskalierung von (1,0f, -1,0f) würde es in der y-Richtung spiegeln.
public class flip extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set view to our created view
setContentView(new drawView(this));
}
private class drawView extends View{
public drawView(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//Load the jellyfish drawable
Bitmap sprite = BitmapFactory.decodeResource(this.getResources(), R.drawable.jellyfish);
//Create a matrix to be used to transform the bitmap
Matrix mirrorMatrix = new Matrix();
//Set the matrix to mirror the image in the x direction
mirrorMatrix.preScale(-1.0f, 1.0f);
//Create a flipped sprite using the transform matrix and the original sprite
Bitmap fSprite = Bitmap.createBitmap(sprite, 0, 0, sprite.getWidth(), sprite.getHeight(), mirrorMatrix, false);
//Draw the first sprite
canvas.drawBitmap(sprite, 0, 0, null);
//Draw the second sprite 5 pixels to the right of the 1st sprite
canvas.drawBitmap(fSprite, sprite.getWidth() + 5, 0, null);
}
}
}
Danke! Ich weiß noch nicht viel über Matrices. Vielleicht hilft mir das, zu verstehen: p – Snailer
Warum würden Sie "Aktivität" verlängern? Ich kann mir keinen Fall vorstellen, in dem die gesamte Inhaltsansicht die "Bitmap" wäre, die umgedreht wird. –
"Das ist vielleicht etwas übertrieben, aber hier ist eine kleine Beispielanwendung". Es ist ein vollständig in sich geschlossenes Beispiel, es ist eine Übung, es so zu implementieren, dass es für Ihre Verwendung sinnvoll ist. –