这是应用程序“Google Catalogs”的快照。我只是想知道我们如何做这种图像重叠。![在此处输入图像描述][1]
问问题
1488 次
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 回答