gpt4 book ai didi

java - 出现错误 : non-static method 'getResources()' cannot be referenced from a static context

转载 作者:行者123 更新时间:2023-12-02 09:04:25 25 4
gpt4 key购买 nike

我正在使用Java在Android studio上开发一个rpg游戏,并且我在资源管理器的Drawable中有png图片。我正在尝试将可绘制对象转换为位图,但出现错误。

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();
}

关于java - 出现错误 : non-static method 'getResources()' cannot be referenced from a static context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59928837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com