我正在尝试制作一个 android 应用程序,我希望在发生某些操作时让气泡漂浮在屏幕上。有人可以在这里帮助我吗?在过去的四天里,我一直在摔头,但我无法弥补。所以请在这里帮助我。提前致谢。
问问题
4516 次
3 回答
2
对于您的用例,与其使用 ImageViews,不如使用Canvas自己处理绘图。
绘制具有透明背景的全屏画布。创建一个位图数组(每个要绘制的图像一个,记住使用圆形蒙版使它们成为气泡状,注意内存问题)并将它们绘制到屏幕的不同位置。
使用自定义 RNG 算法为您的位图生成适当的位置,然后在画布上绘制它们。使用线程来处理动画。
下面是生成圆形裁剪位图的代码:
int targetWidth = 100;
int targetHeight = 100;
Bitmap targetBitmap = Bitmap.createBitmap(
targetWidth,
targetHeight,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(targetBitmap);
Path path = new Path();
path.addCircle(
((float)targetWidth - 1) / 2,
((float)targetHeight - 1) / 2,
(Math.min(((float)targetWidth), ((float)targetHeight)) / 2),
Path.Direction.CCW);
canvas.clipPath(path);
Bitmap sourceBitmap = BitmapFactory.decodeResource(
getResources(),
R.drawable.my_image);
canvas.drawBitmap(
sourceBitmap,
new Rect(0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight()),
new Rect(0, 0, targetWidth, targetHeight),
null);
ImageView imageView = (ImageView)findViewById(R.id.my_image_view);
imageView.setImageBitmap(targetBitmap);
当然,您必须修改此代码以将位图绘制到画布上,而不是在 ImageView 中设置它。将位图裁剪一次,然后将裁剪后的图像放入位图数组中会更有效。
于 2012-12-13T04:46:07.747 回答
1
使用此代码在运行时更改图像视图位置
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(30, 30);
layoutParams.setMargins(left, top, righ, bottom);
yourImageView.setLayoutParams(layoutParams);
于 2012-12-13T04:20:44.467 回答
0
您只能使用 android 中的动态壁纸来实现此功能。我在 Andengine 中创建了许多浮动对象实时论文!:) 所以如果你有任何困惑,你可以进一步问我
于 2012-12-13T03:52:51.413 回答