Android, skärmupplösning för en bild och touch screen

Discussion in 'Frågor, support och diskussion' started by frozendragon, Jun 26, 2011.

  1. frozendragon

    frozendragon Infant Droid Medlem

    Joined:
    Feb 6, 2011
    Messages:
    9
    Likes Received:
    0

    MINA ENHETER

    Det är kanske ganska massivt med kod men försöker hålla det så enkelt som möjligt. Det är så att jag upptäckt ett problem när jag ritar upp backgrundsbilden. Bilden anpassar sig efter skärmupplösning och visar exakt lika mycket av bilden oavsett hur hög eller låg skärmupplösning man har. Så vill jag inte alls att den ska funka utan vill att bilden ska rita upp så många pixlar av bilden som får plats på skärm inte fler och inte färre än det. Jag har försökt lösa felet men kan inte hitta varför den gör så. Misstänker att det är canvas.drawBitmap(bmpBackground, src, dst, null); i metoden drawbackground som är problemet men förstår inte riktigt hur metoden funkar och det finns inte så mycket info om den i Googles hjälp.

    Mitt andra problem är att touchen inte funkar som den ska riktigt jag kan dra runt med fingret på skärmen och bilden följer efter. Problemet är när jag sätter ner fingret från början så hoppar den iväg en bit. Det händer alltid första gången jag nuddar skärmen. Men efter hoppet går det fint att dra runt på skärmen.

    Register eller för att visa innehållet!
     
  2. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Vet inte om jag uppfattar frågorna korrekt, men försöker svara i alla fall :)

    Android skalar automatiskt bilder som läggs i drawable. Om du vill undvika det så kan du lägga bilden i drawable-nodpi. Om det är en ImageView så kan du experimentera med scaleType också.

    Touchproblemet löser du nog genom att spara undan koordinaterna när du först nuddar skärmen och därefter dra bort dessa offset när du ritar ut bilden. Du kan testa dig fram här om du har en större bild och provar att nudda i olika hörn.
     
    frozendragon likes this.
  3. sicn

    sicn Infant Droid Medlem

    Joined:
    Jun 28, 2011
    Messages:
    11
    Likes Received:
    0

    MINA ENHETER

    Säger som nadam, är inte helt säker på att jag förstår frågan, men om du vill att bakgrundsbilden skalas fint oavsett skärmupplösning så måste du "packa in" din bakgrundsbild i en bitmap-resurs, skapa t.ex. följande fil med namn background_strech_correctly.xml i drawable.

    I ovanstående pekar @drawable/background på bilden som du vill skall sträckas proportionerligt.

    Sen i din view.xml kan du ha

    Så brukar jag göra iaf.
     
  4. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Nja, fill_horizontal skalar inte proportionerligt vad jag vet, bara horisontellt. Har du testat på en Galaxy Tab 7" eller någon 10" Honeycomb-tablet?
     
  5. sicn

    sicn Infant Droid Medlem

    Joined:
    Jun 28, 2011
    Messages:
    11
    Likes Received:
    0

    MINA ENHETER

    Man får såklart se till att det finns lite overflow i vertikalen. Funkar iaf på Galaxy Tab 7". Lär nog funka på Honeycomb också men eftersom emulatorn är så brutalt värdelös (extremt långsam på en Quad Core i7 med 8GB RAM och SSD disk) så har jag inte lagt ned någon tid på API levels över 10.
     
  6. frozendragon

    frozendragon Infant Droid Medlem

    Joined:
    Feb 6, 2011
    Messages:
    9
    Likes Received:
    0

    MINA ENHETER

    Tack för hjälpen med problemet med upplösning, det funkar nu som det ska. Någon som vet hur jag ska lösa att touch hoppar till i början?
     
  7. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Ah, nu ser jag att du har inkluderat koden också. Ta bort de tomma case-satserna eller lägg in "break;" där det behövs. I synnerhet för ACTION_DOWN.
     
    frozendragon likes this.