2011-01-25 10 views
7

Próbujemy emulować urządzenia o nowej gęstości 320 dpi w systemach Android 2.3 - , takich jak Archos 101, i nie możemy wydawać się w stanie zdefiniować emulatora z taka gęstość, nawet po pobraniu najnowszego 2.3 SDK.Emulacja gęstości 320 dpi na emulatorze Androida

bym naprawdę docenić kilka pomysłów na ten jeden :)

Many thanks!

Odpowiedz

3

Zawsze można zdefiniować niestandardową gęstość i rozdzielczość dla urządzeń wirtualnych.

Jeśli używasz Eclipse iść do Window - Android SDK and AVD Manager, tam wcisnąć przycisk New wprowadź nazwę i wybrać wersję SDK, uderzył opcję Resolution w sekcji Skin i ustawić rozdzielczość co potrzeba. W sekcji Hardware zmień domyślną opcję ABstracted LCD Density na żądaną wartość i naciśnij przycisk Create AVD.

Po naciśnięciu przycisku Start w programie AVD Manager pojawia się okno podręczne, w którym można wybrać opcję Scale display to real size. Tam musisz ustawić rzeczywisty rozmiar ekranu urządzenia i rozdzielczość monitorów. Możesz nacisnąć znak zapytania po prawej stronie tego pola wejściowego i pozwolić kalkulatorowi go obliczyć na podstawie rozmiaru twojego monitora.

+0

Dziękuję za odpowiedź. Niestety, już próbowaliśmy ustawić gęstość na 320dpi wewnątrz menedżera AVD, ale w emulatorze jest on ustawiony na 240dpi. Myślę, że czytałem gdzieś o tym problemie i miałem nadzieję, że może istnieje obejście lub możliwe rozwiązanie tego problemu, ponieważ jest to całkiem nowy problem. –

+0

Interesujące. Nie czytałem jeszcze o tej kwestii. Czy możesz spróbować znaleźć i opublikować ten link? –

+1

Udało mi się znaleźć taki post wczoraj, nie dając mu zbyt wiele czasu, ale niestety nie mogę tego znaleźć. Myślę, że było to w oficjalnych grupach Google dla programistów Androida. W każdym razie mój kod uzyskiwania gęstości jest następujący i zawsze zwraca 240 dla nowego profilu ekranowego Archos: DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager(). GetDefaultDisplay(). GetMetrics (displayMetrics); końcowa int density = displayMetrics.densityDpi; –

2

Z tego, co rozumiem, Android kategoryzuje rozmiar i gęstość ekranu, więc myślę, że traktuje 240dpi tak samo, jak 320dpi, czyli ma wysoką gęstość. Dostępna jest także następna opcja, która ma bardzo wysoką gęstość. Znalazłem te informacje w dokumentacji dla programistów Androida - patrz http://developer.android.com/guide/topics/fundamentals.html oraz sekcję o nazwie Deklarowanie wymagań aplikacji. Mogę być całkowicie w błędzie, ale pomyślałem, że warto krzyczeć.

6

W menedżerze AVD jeśli zdecydujesz wbudowany skórze wtedy gęstość LCD Abstracted jest ignorowany i będzie ustawić gęstość jak opisano tutaj:

Emulator Skórki (od http://developer.android.com/tools/revisions/platforms.html)

dostępna do pobrania platformy obejmuje następujące skóry wiązki:

  • QVGA (240x320 niskiej gęstości, małe ekran)
  • WQVGA400 (240x400, niska gęstość, normalny ekran)
  • WQVGA432 (240x432, niska gęstość, normalny ekran)
  • HVGA (320x480, średniej gęstości, ekran normalnego)
  • WVGA800 (480x800 wysokiej gęstości, normalny ekran)
  • WVGA854 (480x854 wysokiej gęstości, ekran normalnego)
  • WXGA720 (1280x720, bardzo wysokiej gęstości, ekran normalnego)
  • WSVGA (1024x600, średnia gęstość, duży ekran)
  • WXGA800-7in (1280x800, wysoka gęstość, duży ekran) nowy
  • WXGA800 (1 280 x 800, średnia gęstość, ekran Xlarge)

Jeśli chcesz ustawić własną gęstość ekranu LCD, musisz ręcznie zdefiniować własną rozdzielczość, klikając przycisk Rozdzielczość.

Oto niektóre kodu można użyć do testowania to:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int density = metrics.densityDpi; 
    if (density == DisplayMetrics.DENSITY_HIGH) { 
     Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_MEDIUM) { 
     Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_LOW) { 
     Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else { 
     Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW. Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
6

To jest dość proste.

Zmodyfikuj atrybut hw.lcd.density=320 w pliku konfiguracyjnym avd: /Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini i ponownie uruchom urządzenie wirtualne. Już testuję to i działa to dla mnie!

NIEBEZPIECZNIE Upewnij się, ustawić właściwą gęstość, inaczej otrzymasz błąd: qemu: available lcd densities are: 120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

BTW moja wersja Android SDK Tools 25.2.5.

+0

działało idealnie. dzięki! Zrobiłem obliczenia i ustawiłem rozmiar ekranu w calach na to, co powinno uruchomić 213dp, ale wybrał 240 zamiast tego. Edycja 'config.ini' poprawiła to i teraz mój emulator dokładnie pasuje do tabletu, dla którego rozwijam. – gMale

+0

Awesome, pracował, teraz mogę symulować moje urządzenie na emulatorze, dokładnie! – AVEbrahimi

Powiązane problemy