[英]getting Error: non-static method 'getResources()' cannot be referenced from a static context
我正在使用 Java 在 Android Studio 上開發 rpg 游戲,並且我在資源管理器的 Drawable 中有 png 圖片。 我正在嘗試將 drawable 轉換為位圖,但出現錯誤。
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.