Android L Preview APIS e novidades da próxima versão do Android Rio de Janeiro
Walmyr Carvalho @walmyrcarvalho
Android Developer @ Hotel Urbano
Do que vamos falar hoje?
developer.android.com/preview
developer.android.com/preview
Novas APIS!
Por baixo dos panos
ART Runtime padrão
Open GL ES 3.1 Suporte nativo
Lembrando que é necessário alterar a versão do OpenGL no
AndroidManifest.xml:
<manifest> ...
<uses-feature android:glEsVersion="0x00030001" /> ... </manifest>
Chromium WebView Padrão do L
Android NDK
64-bit Suporte nativo
x64
Material Theme
O Material Theme permite que você customize as cores dos widgets do app
definindo as cores direto no XML do tema.
O tema possui três variações: @android:style/Theme.Material (Escuro)
@android:style/Theme.Material.Light (Claro) @android:style/Theme.Material.Light.DarkActionBar
<resources> <style name="AppTheme" parent="android:Theme.Material"> <item name="android:colorPrimary">@color/primary</item> <item name="android:colorPrimaryDark">@color/primary_dark</item> <item name="android:colorAccent">@color/accent</item> </style> </resources>
RecyclerView
RecyclerView é versão mais avançada e flexível do ListView. Todo o sistema de reciclagem e manipulação de views foi otimizado.
<android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/>
public class MyActivity extends Activity { private RecyclerView mRecyclerView; private RecyclerView.Adapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_activity); mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); // LayoutManager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); // Adapter mAdapter = new MyAdapter(myDataset); mRecyclerView.setAdapter(mAdapter); }}
CardView
CardView é uma classe que herda de FrameLayout e consiste basicamente em um layout que replica um estilo de card, bem popular no Android.
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp" card_view:cardCornerRadius=“4dp" card_view:cardBackgroundColor=“@color/white“> <TextView android:id="@+id/info_text" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v7.widget.CardView>
Palette
Palette é uma biblioteca que nos permite extrair cores predominantes de
um Bitmap.
Palette palette = Palette.generate(bitmap, 24);
É possível também usar o Palette assincronamente:
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) {
// Use o palette aqui } });
palette.getVibrantColor(); palette.getMutedColor(); palette.getLightMutedColor(); palette.getLightVibrantColor(); palette.getDarkMutedColor(); palette.getDarkVibrantColor();
Cuidado: Caso ele não encontre uma cor equivalente, ele retorna null, então é
importante tratar isso:
PaletteItem item = palette.getVibrantColor(); if (item != null) { view.setBackgroundColor(item.getRgb()); }
O Palette está disponível na Support Library v7.
Concluindo…
Existem muitas outras APIs disponíveis no Android L, acessem
developer.android.com/preview/ e conheçam todo o resto!
Dúvidas?
?
?
???
? ?
??
?
? ??
?
??
? ?? ???
?? ?
? ?
Boa noite e muito obrigado! :)
VRio de Janeiro
Links citados no talk developer.android.com/preview/
developer.chrome.com/multidevice/webview/overview github.com/flavienlaurent/livepallete
github.com/gabrielemariotti/RecyclerViewItemAnimators