如何在android中动画对象

时间:2014-08-19 18:30:58

标签: android android-animation transparent

是否有办法让Bitmap对象具有透明背景而不是纯色..我喜欢我的背景图像(在XML布局上设置以显示)?

遗憾的是,没有其他问题对我有用,否则,我不会问......感谢提前!另外,有关如何使动画与XML一起使用的任何提示吗?

import android.content.Context;  
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.View;

public class Vehicle extends View{

Bitmap vehicle;
int x_axisMovement;

public Vehicle(Context context) {
    super(context);
    // TODO Auto-generated constructor stub

    vehicle = BitmapFactory.decodeResource(getResources(), R.drawable.vehicle_bus);

    x_axisMovement = 1024;
}

@Override
protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
    canvas.drawColor(Color.TRANSPARENT); // NOT WORKING

    canvas.drawBitmap(vehicle, x_axisMovement, 400, null);

    if(x_axisMovement > -256){
        x_axisMovement -= 4;
    }
    else
    {
        x_axisMovement = 1024;
    }
    invalidate();
}

}

1 个答案:

答案 0 :(得分:0)

您可以在xml中使用它并以相对布局添加它,这样您就可以在另一个视图的顶部看到视图

<强>样品:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_launcher" >

    <com.example.Vehicle
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

现在com.examplesrc文件夹中的文件夹,但是您might have different folder只需按ctrl+shift+o,这样它就会自动为您提供班级位置的提示。

现在你的班级

public class Vehicle extends View {

Bitmap vehicle;
int x_axisMovement;

public Vehicle(Context context) {
    super(context);
    init();
}

public Vehicle(Context context, AttributeSet s) {
    super(context, s);
    init();
}

public Vehicle(Context context, AttributeSet s, int style) {
    super(context, s, style);
    init();
}

public void init() {
    vehicle = BitmapFactory.decodeResource(getResources(),
            R.drawable.ic_launcher);
    x_axisMovement = 1024;
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawColor(Color.TRANSPARENT); // NOT WORKING

    canvas.drawBitmap(vehicle, x_axisMovement, 400, null);

    if (x_axisMovement > -256) {
        x_axisMovement -= 4;
    } else {
        x_axisMovement = 1024;
    }
    invalidate();
}

}

您需要使用该3构造函数来启用以xml格式使用的类。

现在结果

enter image description here

背景是较大的ic_launcher以及小班ic_launcher中来自您班级的图片。