1

これはアプリ「Google カタログ」からのスナップショットです。この種の画像のオーバーラップを行う方法を知りたいだけです.![ここに画像の説明を入力][1]

4

3 に答える 3

3

FrameLayout を使用して、画像を互いに積み重ねることができます。ただし、同じ画面に無数の画像が表示されるため、そのようにしているとは思えません。これにより、遅かれ早かれメモリの問題が発生します。

私が思うに、彼らはそのカタログからいくつかのサンプルを取得し、イメージをキャンバスに描画して、それを 1 つのエンティティとしてレンダリングします。パネル全体に 1 つのキャンバスのみを使用し、そのように制御する場合もあります。

ちょうど私の2セント。ここであなたの可能性を考えようとしています。

于 2012-04-17T07:35:23.293 に答える
2

Here is the code that i want.

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;

    }

Usage:-

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 に答える