Итак, я пытаюсь установить фон SurfaceView в файл JPG. Но, похоже, он не хочет рисовать изображение, и все, что я получаю, это черный экран.Настройка изображения в SurfaceView, получение черного экрана
Здесь: мой код:
public class FloorplanActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MapView mapView = new MapView(getApplicationContext());
setContentView(mapView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.floorplan, menu);
return true;
}
class MapView extends SurfaceView{
Rect testRectangle1 = new Rect(0, 0, 50, 50);
Bitmap scaled;
int x;
int y;
public MapView(Context context) {
super(context);
}
public void surfaceCreated(SurfaceHolder arg0){
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.floorplan);
float scale = (float)background.getHeight()/(float)getHeight();
int newWidth = Math.round(background.getWidth()/scale);
int newHeight = Math.round(background.getHeight()/scale);
scaled = Bitmap.createScaledBitmap(background, newWidth, newHeight, true);
}
public void onDraw(Canvas canvas) {
canvas.drawBitmap(scaled, 0, 0, null); // draw the background
}
Не знаю, почему он не потянет «FLoorPlan» образ Я сохраненный в папке вытяжки-MDPI.
У кого-нибудь есть предложения?
Спасибо.
EDIT: после некоторой отладки с точками останова, по-видимому, «масштабированная» переменная становится «бесконечной» по какой-то причине, и поэтому переменные newWidth и newHeight становятся меньше 0, и приложение выходит из строя.
Это только в том случае, если я перемещаю всю поверхность, созданную в контрструктор, если я оставлю код, как здесь, то он ничего не делает, пока не отображается черный экран.
Не знаю, что вызывает его, чтобы сделать это, хотя ...
Спасибо, что решил! – Hallow
Пока это старое, СПАСИБО. Я слишком долго бил головой по этой же проблеме. – Alastair
Если вы хотите нарисовать что-то на этом фоне с фоном, u hv, чтобы удалить вызов setWillNotDraw (false) else u what u draw, wint be visible – Braj