Skalning av bitmaps

Diskussion i 'Frågor, support och diskussion' startad av Thoast, 21 feb 2012.

  1. Thoast

    Thoast Youth Droid Medlem

    Blev medlem:
    21 jun 2010
    Inlägg:
    109
    Mottagna gillanden:
    17

    MINA ENHETER

    Någon som kan reda ut detta för mig:

    Jag håller på att göra ett spel och jag ritar ut bitmaps i en array, meningen är att 10 av dessa bitmaps ska ta upp hela skärmens bredd.

    I hpdi foldern lägger jag bild med bredden 48px, detta blir perfekt på en 800*480 skärm i porträtt läge.

    På en Htc Sensation med 960*540 så blir dessa bitmaps bara 480px breda tillsammans och täcker inte upp hela skärmen?

    Har även gjort en bild som är 72px bred och lagt i xhdpi mappen och provat på Galaxy Nexus och Galaxy Note. Precis samma sak där. Ser bra ut på G-Nexus 1280*720, men täcker inte upp hela på G-Note 1280*800.

    Någon som kan förklara hur man ska fixa det tack?
     
  2. ninjalizard

    ninjalizard Baby Droid Medlem

    Blev medlem:
    28 aug 2011
    Inlägg:
    29
    Mottagna gillanden:
    1

    MINA ENHETER

    Kanske getta skärm bredden och sedan skala bitmappen när den laddas så att det passar rätt.
     
  3. Thoast

    Thoast Youth Droid Medlem

    Blev medlem:
    21 jun 2010
    Inlägg:
    109
    Mottagna gillanden:
    17

    MINA ENHETER

    Mmm, använder skärmbredden och höjden redan för dynamiskt upplägg..

    Jag tänkte på det tidigare, men hittade inte syntax för att göra det.. Kanske får googla bättre ;) Trodde att detta skulle ske automagiskt...
     
  4. nadam

    nadam Youth Droid Medlem

    Blev medlem:
    10 feb 2010
    Inlägg:
    182
    Mottagna gillanden:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Skärmens bredd får du med...
    Kod:
            WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
            Display display = windowManager.getDefaultDisplay();
            screenWidth = display.getWidth();
    
    ...fast det visste du nog redan.

    Om du använder ImageView så kan du fördela bredden jämnt med hjälp av android:layout_weight. Problemet är att det inte automatiskt justerar höjden, så det får du göra manuellt i koden genom att sätta imageView.getLayoutParams().height.

    De olika drawable-mapparna och dpi-skalning kan du inte använda i det här fallet eftersom t ex många tablets kommer hämta från drawable-mdpi. Gör istället bara högupplösta bilder och lägg dem i drawable-nodpi.