我正在使用Java在Android Studio上开发一个rpg游戏,并且在Resource Manager中的Drawable中有png图片。我正在尝试将drawable转换为bitmap,但出现错误。
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
public class Player implements GameObject{
private int direction;
private boolean move;
public Player(int direction, boolean move){//constructior
this.direction = direction;
this.move = move;
Drawable myDrawable = MainActivity.getResources().getDrawable(R.drawable.down_standing);
Bitmap downStanding = ((BitmapDrawable) myDrawable).getBitmap();
}
@Override
public void draw(Canvas canvas){
}
@Override
public void update(){
}
public void update(int direction, boolean move){
this.direction = direction;
this.move = move;
}
}
至于MainActivity:
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Constants.SCREEN_WIDTH = dm.widthPixels;
Constants.SCREEN_HEIGHT = dm.heightPixels;
setContentView(new GamePanel(this));
}
}
请帮忙。非常感谢!!
要打电话给getResources()
您一个Context
参考,您不能静态地调用它,所以这是错误的:
MainActivity.getResources()
要实现它,您应该提供一个Context
参数,您可以从一个Activity中获得它:
public Player(int direction, boolean move, Context context){ //constructior with Context
this.direction = direction;
this.move = move;
Drawable myDrawable = context.getResources().getDrawable(R.drawable.down_standing); // This is right
Bitmap downStanding = ((BitmapDrawable) myDrawable).getBitmap();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句