Когда загружаю в bitmap изображение, приложение компилируется, но при запуске вылетает
Задаю возможно глупый вопрос, но когда я загружаю изображение в bitmap
Context cntx; Bitmap background = BitmapFactory.decodeResource(cntx.getResources(), R.drawable.background_img);
То приложение компилируется, но после запуска вылетает. Пишит что в приложение снова произошёл сбой. Что делать не знаю. Гуглил, но ничего не нашёл. Помогите пожалуйста. Заранее благодарю.
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
import com.example.myapplication.R;
public class GameView extends View{
public GameView(Context context){
super(context);
}
Context cntx;
Paint paint;
Bitmap background = BitmapFactory.decodeResource(cntx.getResources(), R.drawable.background_img);
protected void onDraw(Canvas canvas){
canvas.drawARGB(80, 102, 204, 255);
canvas.drawBitmap(background, 50, 50, paint);
}
}
Ответы (1 шт):
Context cntx;
Неясно что это и зачем. Вы не можете создавать контекст, вы можете только использовать тот, что дает вам система. В случае View - во всех возможных конструкторах контекст приходит параметром, вот его и используйте
public GameView(Context context){
super(context);
background = BitmapFactory.decodeResource(context.getResources(), R.drawable.background_img);
}
Только если пихать такое в конструктор, то могут начаться проблемы из-за того, что у View несколько конструкторов. Если вызовется конструктор с другим набором параметров, то этот перегруженный конструктор не вызовется и картинка не считается. Либо перегрузите все, либо вынесите этот код в другое место(но все еще внутри вашей вьюшки). Во View всегда доступен метод getContext()