poniedziałek, 14 listopada 2011

Animacja 2D. XML

Animacja 2D z pliku XML [ListView]
 Jest to bardzo efektowny rodzaj animacji, który można zastosować do urozmaicenia Menu, użyłem animacji do uatrakcyjnienia widoku ListView, który deklarowałem z pozycji XML (należy pamiętać o czerwonych linijkach, to one wskazują na KONTROLER ANIMACJI, w którym to dodajemy odpowiednie efekty.

  <ListView
        android:id="@+id/listView1"
        android:persistentDrawingCache="animation|scrolling"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layoutAnimation="@anim/animlayout" >
    </ListView>


W katalogu res/anim/animlayout         << KONTROLER ANIMACJI >>

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:delay="30%"
    android:animationOrder="reverse"
    android:animation="@anim/anim1
/>

**na czerwono deklarowanie pliku anim1.xml o ścieżce res/anim/anim1 w którym to jest opisany dany efekt animacyjny

plik res/anim/anim1         [w tym przypadku ANIMACJA SKALI]
<?xml version="1.0" encoding="utf-8"?>
<set >
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/accelerate_interpolator">
        <scale
            android:fromXScale="1"
            android:fromYScale="1"
            android:toXScale="0.1"
            android:toYScale="1"
            android:duration="5000"
            android:pivotX="50%"
            android:pivotY="50%"
            android:startOffset="100"
        />
    </set>
</set>

 lub jedno z 3 innych trybów animacji:
  • Animacja rotacyjna
  •  Animacja translacyjna (zwykła translacja, przemieszczanie obiektu o x,y)
  • Animacja alfa (zmiana przezroczystości) 
Można też wykonać z poziomu Javy daną animacje:

        ListView l = (ListView)this.findViewById(R.id.listView1);
        l.startLayoutAnimation();


    piątek, 11 listopada 2011

    Content Provider [Android SDK]

    Content Provider


    Wpis do AndroidManifest przykladowego providera:

            <provider android:name="Nazwa_klasy_providera"
                android:authorities="my.project.c"
            />
    gdzie w klasie providera:

    public static final String AUTHORITY = "my.project.c";
    public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/nazwa_tabeli");

    Baze danych mozna przegladac objektem typu Cursor w sposob:

    Cursor cursor = some_activity.manageQuery(argumenty);
    -[[selected == where, np. "_id=?" musi byc znak zapytania!!!]]
    -parametr po selected zastepuje ? wiec są to argumenty dla klauzuli WHERE w sqlite

    poniedziałek, 3 października 2011

    JList [czyli początek awt-swing'owego października]

    Witam, to pierwszy mój post, w październiku będę pisał głównie o Javo'wej GUI, a więc AWT i SWING.


    JList

    JList to nasz Swing'owy (javax.swing.JList) komponent, jest bardzo podobny jeśli chodzi o edycje do JTable, udostępnia metodę setCellRenderer za pomocą której można zmienić wygląd listy. "Podkomponenty" listy to komponenty klasy JLabel. Ten jak i inne komponenty można dopasować kolorystycznie za pomocą UIManager.getSystemLookAndFeelClassName()), zastosować ustawienia któregoś z systemów lub zmienić za pomocą klasy ListCellRenderer :

    Argumenty dla różnych L&F: 
    -com.sun.java.swing.plaf.windows.WindowsLookAndFeel      -javax.swing.plaf.metal.MetalLookAndFeel 
    -com.sun.java.swing.plaf.motif.MotifLookAndFeel 
    -com.sun.java.swing.plaf.mac.MacLookAndFeel
      przykład: UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");



       Najważniejsze funkcje klasy JList:
      • setVisibleRowCount(int i)
      • setEditable(boolean edit)




       Przykład tworzenia obiektu typu JList





       Nie można zapominać też o osadzeniu komponentów takich jak JList, JTable, JTree w JPaneScroll który to daje możliwość "scrollowania" komponentu, a więc przy zmiennych rozmiarach komponentów możemy być pewni, że przy nieoczekiwanej zmianie wielkości nasze GUI nie rozleci się.