Java 翻转可在X轴或Y轴上绘制

Java 翻转可在X轴或Y轴上绘制,java,android,drawable,Java,Android,Drawable,这似乎是一个愚蠢的问题,但我看不到使用Drawable类中的方法实现这一点的任何方法。然后我想也许我必须以某种方式翻转画布。。还是找不到合适的方法 我只需要在y轴上“翻转”一个可拉伸的。。中心最好是y形的。如何执行此操作?从10k ft级别开始,您希望创建一个新位图,并指定一个变换矩阵来翻转位图 这可能有点过分,但下面是一个小示例应用程序,演示了如何做到这一点。如前所述,(-1.0f,1.0f)的变换矩阵预刻度将在x方向翻转图像,而(1.0f,-1.0f)的预刻度将在y方向翻转图像 public

这似乎是一个愚蠢的问题,但我看不到使用
Drawable
类中的方法实现这一点的任何方法。然后我想也许我必须以某种方式翻转画布。。还是找不到合适的方法


我只需要在y轴上“翻转”一个可拉伸的。。中心最好是y形的。如何执行此操作?

从10k ft级别开始,您希望创建一个新位图,并指定一个变换矩阵来翻转位图


这可能有点过分,但下面是一个小示例应用程序,演示了如何做到这一点。如前所述,(-1.0f,1.0f)的变换矩阵预刻度将在x方向翻转图像,而(1.0f,-1.0f)的预刻度将在y方向翻转图像

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);
        }
    }
}

谢谢我对使用矩阵还不是很了解。也许这会帮助我理解:你为什么要扩展
活动
?我无法想象您希望整个内容视图成为翻转的
位图
“这可能有点过分,但这里有一个小示例应用程序”。这是一个完全自包含的示例,它作为一个练习,以一种对您的使用有意义的方式实现它。