如何使图像视图像屏幕上的气泡一样浮动?

时间:2012-12-13 03:41:53

标签: android android-animation

我正在尝试创建一个Android应用程序,我希望在某些操作发生时浮动屏幕上的气泡。有人可以帮助我。我在过去的四天里一直在挣扎,但我无法弥补。所以请在这里帮助我。提前谢谢。

3 个答案:

答案 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创建了许多浮动物体实况文件! :) 如果你有任何困惑,你可以进一步问我