これはアプリ「Google カタログ」からのスナップショットです。この種の画像のオーバーラップを行う方法を知りたいだけです.![ここに画像の説明を入力][1]
質問する
1488 次
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 に答える