0

我正在尝试制作一个 android 应用程序,我希望在发生某些操作时让气泡漂浮在屏幕上。有人可以在这里帮助我吗?在过去的四天里,我一直在摔头,但我无法弥补。所以请在这里帮助我。提前致谢。

4

3 回答 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 回答