Czy w ilości miejsca na interfejs liczy się tylko przekątna urządzenia mobilnego czy jego rozdzielczość?

0

Obecnie mam telefon 5 calowy -> 720 x 1280 px (5,00") 294 ppi

I piszę na Androida aplikację do sterowania obiektem mobilnym, kiedyś już o tym pisałem, że ma stream video na żywo z kamery którą obraca się obrotem telefonu w górę i w dół (Yaw,Pitch), wirtualny joystick, mapę google z zaznaczaniem trasy i teraz doszedłem do zrobienia animacji Canvas do prezentacji danych z czujników (Akcelerometr, Żyroskop -> prezentacja kąta Roll,Pitch po przejściu przez Filtr Kalmana, obliczenia prędkości, przebytej odległości z GPS'a, temperatura i wilgotność powietrza, no i napięcie akumulatora LiPo).

I okazało się, że na moim ekranie zmieści się tylko mapa Google, wirtualny joystick no i obraz z kamery:title

A te wszystkie animacje Canvas nie mają gdzie się podziać.

I teraz pomyślałem, że mógłbym kupić tableta z 8 calowego i na nim prezentować tą aplikację (bo prezentowanie odczytu z danych czujników, nie podczas sterowania, ale po jest jak dla mnie bezsensu, że po prostu ktoś wchodzi do drugiej aktywności żeby zobaczyć odczyty z czujników, ale nie może sterować niczym). A tak to wszystko co jest teraz na tym obrazku co wstawiłem było by po lewej stronie połowy ekranu, a po prawej połowie wszystkie animacje Canvas, razem 6.

I pytanie jest takie czy liczy się tylko przekątna obrazu czy rozdzielczość ekranu? Bo widziałem takie tablety co miały w zasadzie taką samą rozdzielczość na mój obecny telefon jak i takie co miały 1920x1080, ale one były dużo dużo droższe.

0

Rozdzielczość będzie miała realny wpływ na to ile rzeczy zmieścisz na ekranie, bez zmiany wielkości komponentów. W przypadku większej przekątnej, wszystkie komponenty będą większe, więc teoretycznie będziesz mógł je nieco zmniejszyć bez drastycznej utraty czytelności.

Na dobrym tablecie np. Samsung Galaxy Note 10.1 masz rozdzielczość 2560 x 1600 px, więc Twój obecny layout zajmowałby na nim zaledwie 1/2 ekranu bez zmniejszania wielkości komponentów.

0
Haskell napisał(a):

Rozdzielczość będzie miała realny wpływ na to ile rzeczy zmieścisz na ekranie, bez zmiany wielkości komponentów. W przypadku większej przekątnej, wszystkie komponenty będą większe, więc teoretycznie będziesz mógł je nieco zmniejszyć bez drastycznej utraty czytelności.

Na dobrym tablecie np. Samsung Galaxy Note 10.1 masz rozdzielczość 2560 x 1600 px, więc Twój obecny layout zajmowałby na nim zaledwie 1/2 ekranu bez zmniejszania wielkości komponentów.

Mam jeszcze jedno pytanie trochę inne, związane z tym tematem: Jak przechowywać dane do późniejszego odtworzenia przejazdu trasy w Androidzie?

Dzisiaj się wziąłem za to i jednak zrobiłem to tak (bo zadziałało bez problemu dla tablicy double 600 elementowej) :

Przekazywanie danych:

/** lat_GPS,lon_GPS,roll_angle,pitch_angle -> double[] = new double[600], licznik -> int **/
Intent intent1 = new Intent(this, PlayTravelledRouteActivity.class);
intent1.putExtra("lat",lat_GPS);
intent1.putExtra("lon",lon_GPS);
intent1.putExtra("last_index",licznik); // bo nie zrobiłem listy tylko nadpisywanie danych w tablicy poprzez zerowanie licznika, więc muszę wiedzieć pod jakim //licznikiem były zapisane dane z ostatniej chwili, żeby odtworzyć je w odpowiedniej kolejności
intent1.putExtra("roll_angle",roll_Kalman_Filter);
intent1.putExtra("pitch_angle",pitch_Kalman_Filter);
startActivity(intent1);

Odbiór danych:

double [] lat     =  getIntent().getDoubleArayExtra("lat");
double [] lon    =  getIntent().getDoubleArrayExtra("lon");
int endIndex    = getIntent().getIntExtra("last_index",0);
double [] roll    = getIntent().getDoubleArrayExtra("roll_angle");
double [] pitch = getIntent().getDoubleArrayExtra("pitch_angle");

I wszystko działa tylko problem leży w tym, że do aktywności "PlayTravelledRouteActivity" dostaję się poprzez przycisk "Play" z aktywności "MainActivity", a nie z aktywności "ChooseActivity" zaprezentuję to Tobie na diagramie:

Tak jest:title

A chciałbym tak: title

Zatem rozumiem, że na początku powinienem przekazać dane do "ChooseActivity" potem je w tej aktywności odczytać i potem przy wciśnięciu przycisku "Play" w tej aktywności przekazać je dalej do "PlayTravelledRouteActivity" i tam znów je odczytać.

Tylko w którym miejscu mam zamieścić ten kod:

/** lat_GPS,lon_GPS,roll_angle,pitch_angle -> double[] = new double[600], licznik -> int **/
Intent intent1 = new Intent(this, PlayTravelledRouteActivity.class);
intent1.putExtra("lat",lat_GPS);
intent1.putExtra("lon",lon_GPS);
intent1.putExtra("last_index",licznik); // bo nie zrobiłem listy tylko nadpisywanie danych w tablicy poprzez zerowanie licznika, więc muszę wiedzieć pod jakim //licznikiem były zapisane dane z ostatniej chwili, żeby odtworzyć je w odpowiedniej kolejności
intent1.putExtra("roll_angle",roll_Kalman_Filter);
intent1.putExtra("pitch_angle",pitch_Kalman_Filter);
startActivity(intent1);

Skoro do aktywności "ChooseActivity" wraca się fizycznym przyciskiem "Back" z telefonu, a nie żadnym software'owym ??? Mógłbyś mi powiedzieć?

1 użytkowników online, w tym zalogowanych: 0, gości: 1