1

这是应用程序“Google Catalogs”的快照。我只是想知道我们如何做这种图像重叠。![在此处输入图像描述][1]

4

3 回答 3

3

您可以使用 FrameLayout 将图像堆叠在一起。但是,我怀疑他们会这样做,因为您将在同一个屏幕上拥有无限数量的图像。这迟早会导致内存问题。

我认为他们所做的是从该目录中获取一些样本,然后将图像绘制到画布中,然后将其渲染为一个实体。他们可能只为整个面板使用一个画布,然后也以这种方式控制它。

只是我的两分钱。在这里尝试为您考虑可能性。

于 2012-04-17T07:35:23.293 回答
2

这是我想要的代码。

public Bitmap convertImage(Bitmap bitmap, int param1, int param2, int degree) {
        float f1 = 1.0F;
        int i = bitmap.getWidth();
        int j = bitmap.getHeight();

        if (((Math.abs(i - param1) <= 1) || (param1 <= 0))
                && (Math.abs(j - param2) <= 1) || (param2 <= 0) && degree == 0)
            return bitmap;

        Matrix matrix = new Matrix();
        float f4 = 1.0F;
        if (param1 > 0) {
            float f2 = param1;
            float f3 = i;
            f4 = f2 / f3;
        } else if (param2 > 0) {
            float f5 = param2;
            float f6 = j;
            f1 = f5 / f6;
        }

        boolean b1 = matrix.postScale(f4, f1);
        float f7 = degree;
        boolean b2 = matrix.postRotate(f7);
        Bitmap localbitmap = bitmap;

        int k = 0;

        bitmap = Bitmap.createBitmap(localbitmap, 0, k, i, j, matrix, true);
        return bitmap;

    }

用法:-

BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(
                R.drawable.ic_launcher);
        Bitmap localBitmap2 = convertImage(drawable.getBitmap(), -1, -1,
                -7);

        imageview1.setImageBitmap(localBitmap2);
于 2012-04-17T09:43:17.257 回答
1

您可以在 FrameLayout 中的 ImageView 对象中使用图像来重叠图像。在这里,我发布了一个示例。

于 2012-04-17T07:31:13.537 回答