我正在尝试创建一个Android应用程序,我希望在某些操作发生时浮动屏幕上的气泡。有人可以帮助我。我在过去的四天里一直在挣扎,但我无法弥补。所以请在这里帮助我。提前谢谢。
答案 0 :(得分:2)
对于您的用例,不如使用ImageView,最好使用Canvas来自己处理绘图。
使用透明背景绘制全屏画布。创建一个位图数组(每个图像对应一个要绘制的图像,记得使用圆形蒙版使其形状为气泡,注意内存问题)并将它们绘制到不同位置的屏幕上。
使用自定义RNG算法为位图生成适当的位置,然后在画布上绘制它们。使用Thread处理动画。
Here是生成圆形裁剪位图的代码:
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中设置它。裁剪Bitmap一次,然后将裁剪后的图像放入Bitmaps数组中会更有效率。
答案 1 :(得分:1)
使用此代码
在运行时更改imageview位置RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(30, 30);
layoutParams.setMargins(left, top, righ, bottom);
yourImageView.setLayoutParams(layoutParams);
答案 2 :(得分:0)
您只能在Android中使用动态壁纸来实现此功能。 我在Andengine创建了许多浮动物体实况文件! :) 如果你有任何困惑,你可以进一步问我