Пользовательский вид и его содержимое не реагируют на экран разных размеров. например фоновое изображение и маленький круг внутри игры. В общем, как сделать каждую вещь на холсте отзывчивой?
Как вы видите на картинке, размер зеленого круга соответствует размеру экрана.
Один и тот же круг на экране другого размера
private int yellowX, yellowY;
private Paint yellowPaint = new Paint();
private Bitmap backgroundImage;
public flyingFishView(Context context) {
super(context);
backgroundImage = BitmapFactory.decodeResource(getResources(),R.drawable.background);
yellowPaint.setColor(Color.YELLOW);
yellowPaint.setAntiAlias(false);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int canvasWidth = getWidth();
int canvasHeight = getHeight();
canvas.drawBitmap(backgroundImage,0, 0,null);
}
А это mainActivity
:
public class MainActivity extends AppCompatActivity {
private flyingFishView gameview;
private Handler handler = new Handler();
private final static long Interval = 40;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameview = new flyingFishView(this);
setContentView(gameview);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
gameview.invalidate();
}
});
}
}, 0, Interval );
}
}