Mam bitmapę jako Drawable, której używam jako Canvas. Wszystko jest wyświetlane jako LinearLayout.
Niestety mam problem z skalowaniem. Bitmapa rysuje się w wysokości takiej jak wybrana w pikselach, a szerokość jest automatycznie redukowana do szerokości ekranu. Tak, że zmieniają się proporcje.
Jak używać Canvas z bitmapą w tle by wszystko skalowało się proporcjonalnie i dopasowywało do szerokości ekranu (także, gdy jest większa niż szerokość bitmapy) ?
Jestem początkujący w Androidzie więc proszę o wyrozumiałość ;)
Oto kod metody inicjującej:
public void initMap(LinearLayout ll, Resources res) {
clearBg = BitmapFactory.decodeResource(res, R.drawable.world);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(clearBg, d, h, true);
clearBg.recycle();
clearBg = scaledBitmap;
bg = Bitmap.createBitmap(d, h, Bitmap.Config.ARGB_8888);
canvas = new Canvas(bg);
ll.setBackground(new BitmapDrawable(res, bg));
"clearBg" służy do "resetowania" obrazu do stanu pierwotnego.
gdzie LinearLayout w konstruktorze metody to:
<LinearLayout
android:id="@+id/world_map"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true">
</LinearLayout>