Witaj Sieciowy Szperaczu :)
Wiedz, że nie znajdziesz tutaj kodów źródłowych ani poradników jak kodzić dobre i przemyślane aplikacje na Androida.

Za to zobaczysz moje wolne przemyślenia, porady i pomysły. Dowiesz się też z czym miałem problemy, które napotkałem podczas swojej przygody z 'Andkiem' oraz, co ważniejsze, ich rozwiązania.
Pokazywanie postów oznaczonych etykietą android. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą android. Pokaż wszystkie posty

piątek, 24 czerwca 2011

Androidowa Adaptacja, czyli Adapter i getView

'Ciekawe' pomyślałem, bo z jednej strony to dobrze, a z drugiej źle. Tak to już jest, wszystko ma plusy i minusy. No ale 'osochozi'?

Dzisiaj robiłem sobie prostą listę, którą podpiąłem do widoku jako ListView. Oczywiście nie chciałem aby wyglądała standardowo, dlatego musiałem stworzyć własny Adapter, a dokładniej ArrayAdapter. Miała to być lista z ikonkami po boku:

1
public class MyIconAdapter extends ArrayAdapter<Object>

Potem należało nadpisać metodę getView i wpisać dowolny kod.

1
2
@Override
public View getView(int position, View convertView, ViewGroup parent)

I w tym momencie, nareszcie, dochodzimy do meritum tego posta :)
Jeśli lista jest zbyt długa, żeby wyświetlić ją na ekranie to podczas przesuwania ekranu za każdym razem, dla kolejnych elementów wywoływana jest metoda getView! Czyli każdy element jest 'generowany' na bieżąco, a po starcie aplikacji wczytywane są tylko elementy widoczne.

Może parę słów dlaczego? Otóż programiści Androida w ten sposób wyłuskują ograniczenie zjadania pamięci, niepotrzebnych obliczeń, a co za tym idzie, również mniejsze zużycie baterii. Dobry pomysł! Chociaż przy listach większych gabarytów potrafi przymulić ;)

poniedziałek, 20 czerwca 2011

Size - czy liczy się rozmiar?



Tak! :)

Rozmiar się liczy, przynajmniej w Androidzie. Ekran zazwyczaj jest stosunkowo niewielki (wykluczając tablety), a co za tym idzie, o miejsce trzeba dbać i dobrze zarządzać wielkościami.
Pewnie nie każdy zdaje sobie sprawę ile jest rodzajów jednostek, które możemy wykorzystać (no bo przecież można wszystko ustawiać w pikselach).
A ja zgłębiłem trochę ten temat i przybliżę ten temat Wam. Oto rodzaje wielkości w Androidzie:


  • px - Piksele (Pixels) - jednostka odnosząca się do wielkości jednego piksela na ekranie urządzenia
  • in - Cale (Inches) - liczone od fizycznego rozmiaru ekranu
  • mm - Milimetry (Millimeters) - j.w. - liczone od fizycznego rozmiaru ekranu
  • pt - Punkty (Points) - jest to 1/72 cala liczona na podstawie fizycznego rozmiaru ekranu
  • dp - gęstość niezależnych pikseli? (Density-independent Pixels) - jednostka abstrakcyjna liczona na podstawie zagęszczenia ekranu (fizycznie rzecz biorąc). Jednostka ta odnosi się do 160dpi, czyli 1dp to jedna plamka na ekranie 160dpi. Wartość ta jest zmienna w zależności od ekranu, jednak trzeba uważać, bo nie zawsze jest przeliczana proporcjonalnie.
  • sp - pixele ustalane w zależności od skali (Scale-independent Pixels) - coś na podobieństwo dp, ale jest skalowane w zależności od ustawień czcionki użytkownika. Zalecane podczas podawania wielkości czcionek! Wtedy wielkość czcionki jest ustanawiana na podstawie zagęszczenia (dpi) i ustawień czcionki użytkownika.


Dlatego warto pamiętać, aby rozmiar tekstu definiować w sposób następujący:
1
2
3
4
5
6
<TextView  
    android:id="@+id/label"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="44sp"
    />

Przykłady możecie znaleźć tutaj.


piątek, 4 lutego 2011

A gdzie tutorial? (Konfiguracja Eclipse i Android )

No tak, pierwsza rzecz bijąca po oczach - brak rzetelnego opisu jakiegokolwiek IDE (książka 'Beginning'). Jak tu beginować bez środowiska?
Ja polecam Eclipsa, który jest 'supportowany' (może trochę przesadzam) przez Androida. A przynajmniej jest do niego plugin na stronie Androidowego SDK.

Przygotowanie
UWAGA: musimy mieć Javowe SDK! Jeśli jeszcze nie mamy, pobieramy stąd, instalujemy.

Instalacja wtyczek, IDE
1. Ściągamy paczkę Eclipse Galileo for Java developers w wersji 3.5.2
(nie pytajcie dlaczego. Po prostu przy tej wersji nie jest potrzebna jakaś chora konfiguracja środowiska, aby nic się nie wieszało/nie cięło. Jeśli jesteś masonem, możesz śmiało instalować najnowszą wersję!).
2. Czytamy coś, co już ktoś (froger - Mirek Stanek) bardzo dobrze i przyjemnie opisał, tutaj.
Dlaczego sam tego nie opiszę? Proste - zasada DRY. (chociaż dotyczy kogoś innego :))


Proste, prawda. Naprawdę radzę używać Eclipsa w wersji Galileo 3.5.2.
Próbowałem innych, zajęło to kupę czasu i się nie udało.
Z Galileo nie miałem żadnych problemów.

Śmiga dobrze? No to fajnie. Nie? Coś musiałeś pomylić! :)

Początki bywają trudne

Hej ho!
Na samym wstępie powiem czego tu nie znajdziesz czytelniku:

  • tutoriali jak programować w Javie (od tego są książki, kursy itp.)
  • kodów źródłowych aplikacji
  • tutoriali jak pisać mobilne aplikacje na Androida (za to polecam lekturę: Tutoriale od frogermcs)
A co tu znajdziesz?
  • przede wszystkim - wolne przemyślenia i spostrzeżenia na temat Androida, programowania
  • rozwiązania problemów, które napotkałem podczas swojej przygody z 'Andkiem'


"Dobra, czas zacząć się rozwijać" pomyślałem... Tak, było to jakiś rok temu. Nie wyszło. Zdarza się.
Tak więc podejście drugie, dość czasochłonne, pisanie tego, przez co się przechodzi przy programowaniu na blogu. Po prostu 'lets traj'.

Dlaczego Android? Rozwijająca się technolo.... ekhm. Zaraz, nikt tu nie zajrzy, żeby czytać dlaczego ja, czy ktokolwiek tak myśli. Po prostu - Android - Andek = Możliwości.

Początki są trudne, nie ma nic dobrego z literatury w naszym rodzimym języku (no, może 2 książki są ok, ale cena zwala z nóg większość studentów). Tak więc, ja zaczynam ambitnie od lektury angielskiego wydania książki:

"Beginning Android 2 - Mark L. Murphy".

Może być ciekawie.