Konverteringsproblem 1.5 -> 1.6

Discussion in 'Frågor, support och diskussion' started by Kaj, Nov 3, 2009.

  1. Kaj

    Kaj Senior Droid Medlem

    Joined:
    Jun 12, 2009
    Messages:
    1 768
    Likes Received:
    44

    MINA ENHETER

    Tänkte skapa en tråd för alla som har problem vid konvertering från 1.5 till 1.6, och hur man gör hur så att appen fungerar både på 1.5, 1.6 och med olika densiteter/upplösningar.

    I reply #3 i denna tråden:
    https://swedroid.se/forum/showthread.php?t=3189

    Ger johannilsson ett bra tips.

    Övriga allmänna problem kanske vi kan diskutera i denna tråden?
     
  2. Kaj

    Kaj Senior Droid Medlem

    Joined:
    Jun 12, 2009
    Messages:
    1 768
    Likes Received:
    44

    MINA ENHETER

    Jag kan börja med ett strul som jag råkat ut för när jag nu börjat kolla på att göra så att snowstorm skall fungera på mobiler med lägre upplösning.
    I widget_large.xml, som är den widget som täcker hela skärmbredden på normala mobiler, har jag:

    android:minWidth="294dp"
    android:minHeight="72dp"

    Tanken var att den då skulle täcka hela bredden även om man hade andra skärmupplösningar. Dvs, den är 4 x 1 "celler".

    När jag nu testar den i en emulator med density = 120 så täcker widgeten endast ca 75%, och om jag testar att läga en small widget (1x1) brevid så går det bra.

    Hur f får man den att täcka hela bredden?
     
  3. Jarman

    Jarman Youth Droid Medlem

    Joined:
    Oct 28, 2009
    Messages:
    141
    Likes Received:
    0

    MINA ENHETER

    Hej Kaj!
    Tack för en grym app, jag använder den varje dag.
    Jag har inte gett mig på widgets än men jag gör ett försök ändå:

    Har du varit inne här?
    http://developer.android.com/guide/practices/screens_support.html

    Där står det lite om Density independent pixel (dip) som kanske kan hjälpa dig.

    Det står även att man ska undvika att "hårdkoda" height och width utan i största mån använda wrap-content och fill-parent.

    Hoppas det löser sig!

    Mvh
    Jarman
     
  4. Kaj

    Kaj Senior Droid Medlem

    Joined:
    Jun 12, 2009
    Messages:
    1 768
    Likes Received:
    44

    MINA ENHETER

    Tackar. dp är samma som dip. Har även testat med sp (scale-independent pixel). Hmm.. såg på din länk att jag kanske har skapat min emulator på fel sätt. Får testa att skapa en ny emulator i morgon.

    I länken du angav ser man att man kan skriva:
    "android create avd ... --skin QVGA"

    Jag skapade istället en AVD med egen hårdvara och densitet 120. Det kanske blev något fel där.

    Edit: Appropå att använda wrap osv. Man kan inte göra det i själva widget-xml-filen. I den måste man säga hur stor widgeten skall vara som placeras på home.
     
    Last edited: Nov 3, 2009
  5. Jarman

    Jarman Youth Droid Medlem

    Joined:
    Oct 28, 2009
    Messages:
    141
    Likes Received:
    0

    MINA ENHETER

    Ah, misstänkte att det var lite special för widgets...

    Jag kör eclipse med pluginen för att skapa AVD´s.
    Rekommenderas, smidigt att skapa olika typer av avds tycker jag.
     
  6. echt

    echt Adult Droid Medlem

    Joined:
    Aug 11, 2009
    Messages:
    811
    Likes Received:
    111
    Operatör:
    Tele2
    Telefon:
    Xperia Z5 Compact

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    Xperia Z5 Compact
    Så fort du specificerar pixlar tar du bort androids förmånga (i 1.6+) att själv anpassa efter rätt format, om du nu känner att du "måste" så kan du ju låta appen känna av Android versionen och sedan om det är 1.6 eller senare grepa upplösningen och dela på den och skit men som jag förstått det så med widgets borde det gå att specificera antalet platser den tar upp dvs om det är 1x1 eller 2x4 osv iom att oavsett upplösning är alla 4x4 (AFAIK, än så länge iaf).
    Inte hållt på med widgets så mycket själv, men ha för mig jag läste det när jag höll på.
     
  7. Kaj

    Kaj Senior Droid Medlem

    Joined:
    Jun 12, 2009
    Messages:
    1 768
    Likes Received:
    44

    MINA ENHETER

    Tackar. Tyckte det funkade kasst i förra versionen av Eclipse-plugin:et. Nu gick det mycket bättre :)

    ... och nu blev min device/AVD skapad med rätt densitet och upplösning. Den AVD som jag själv skapat måste ha blivit felaktig. Nu ser Snowstorm rätt ut på home screen, men måst rätta till några småfel i dialoger.
     
  8. Kaj

    Kaj Senior Droid Medlem

    Joined:
    Jun 12, 2009
    Messages:
    1 768
    Likes Received:
    44

    MINA ENHETER

    En appwidget kan inte ändra storlek efter att den har skapats. Så vitt jag vet måste den ange storlek i sin initiala xml (därför måste jag ha en xml per widgetstorlek). Det hade varit piffigt om man hade kunnat speca storlek i celler, men enligt allt jag hittar så måste man ange det antingen i pixlar eller i dip/dp (device independent pixels):

    http://developer.android.com/guide/topics/appwidgets/index.html

    "Because the Home screen's layout orientation (and thus, the cell sizes) can change, as a rule of thumb, you should assume the worst-case cell size of 74 pixels for the height and width of a cell. However, you must subtract 2 from the final dimension to account for any integer rounding errors that occur in the pixel count. To find your minimum width and height in density-independent pixels (dp), use this formula:
    (number of cells * 74) - 2
    Following this formula, you should use 72 dp for a height of one cell, 294 dp and for a width of four cells."

    Android/home kommer sedan räkna ut hur många celler som din appwidget täcker.

    Uppskattar dock din input. Alltid bra att kolla en extra gång, eller så kan jag ha googlat fel :)
     
  9. echt

    echt Adult Droid Medlem

    Joined:
    Aug 11, 2009
    Messages:
    811
    Likes Received:
    111
    Operatör:
    Tele2
    Telefon:
    Xperia Z5 Compact

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    Xperia Z5 Compact
    Ah ok, som sagt hade för mig jag läste att det var en ändring med de olika skärm storlekarna men kan ha misstolkat eller blandat ihop oxå :)