Моя проблема простая, однако решение ускользает от меня; Я хочу, чтобы растровые изображения масштабировались относительно размера экрана.Изображения не resalaling пропорциональности в Android
Изображение проблемы:
Ниже приведен код, я не знаю, сколько включать как я действительно не могу понять, почему это происходит.
public TitleView(Context context) {
super(context);
myContext = context;
titleGraphicFixed = BitmapFactory.decodeResource(getResources(),
R.drawable.title_background);
playButtonUpFixed = BitmapFactory.decodeResource(getResources(),
R.drawable.button_play_up);
playButtonDownFixed = BitmapFactory.decodeResource(getResources(),
R.drawable.button_play_down);
}
@Override
public void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
screenW = w;
screenH = h;
drawScaleW = (float) screenW/800;
drawScaleH = (float) screenH/600;
Log.d(TAG, "Screen Width: " + drawScaleW);
Log.d(TAG, "Screen Height: " + drawScaleH);
titleGraphic = Bitmap.createScaledBitmap(titleGraphicFixed, screenW,
screenH, true);
playButtonUp = Bitmap.createScaledBitmap(playButtonUpFixed,
(int) (playButtonUpFixed.getWidth() * drawScaleW),
(int) (playButtonUpFixed.getHeight() * drawScaleH), true);
playButtonDown = Bitmap.createScaledBitmap(playButtonDownFixed,
(int) (playButtonDownFixed.getWidth() * drawScaleW),
(int) (playButtonDownFixed.getHeight() * drawScaleH), true);
Edit:
Я строю на примере найденного в книге «Android Программирование игр для чайников», как это первое приложение/игры я закодированы для андроида. Для его названий игр/страниц меню автор не использует XML-макеты.
Это ссылка на код я использую в настоящее время:
Второе редактирование:
Ниже приведены сведения, полученные из журналов, следующий текст выкладывается так, что слева находится меньший из изображенных устройств выше и справа, чем больше.
экрана Ш: 320, 800 экран H: 240, 480
шкала W: 0,4, 1,0 Шкала H: 0,4, 0,8
(До сих пор все математику добавляет вверх/правильно, однако здесь есть было это сходит с ума
Фактическая кнопка размер изображения кнопки: W220, H67
Рассчитано размер кнопки: W: 66, 330 H: 20, 80
Очевидно, что это не так, как, например, маленький экран, H67 * 0,4 не равно 20. Таким образом, я пошел посмотреть, что ширина и высота кнопки, как только они будут импортированы в и обнаружили:
W: 165, 330 H: 50, 101
Это означает, что для маленького экрана, после создания растрового изображения (но не масштабируется, оно автоматически масштабируется на 0,75 от фактического размера изображения кнопки). Для большего экрана он изменяется на 1,5 в точке, в которой он создается. Я не могу для меня обойтись, почему!
В чем проблема с этим? – andy256
Кнопки должны теоретически быть одинаковыми по размеру (относительно размера экрана), что не так. –