SlideShare una empresa de Scribd logo
1 de 54
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
COMENZANDO A
PROGRAMAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
LA CLASE VIEWGROUPS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON MATERIAL DESIGN
SCROLLABLE TABS
TABS CON SWIPE VIEWS
FIXED TABS
TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TAB WIDGET
TAB HOST
TABS: CONSTRUCCIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS: CONSTRUCCIÓN
TabHost [id/tabhost]
LinearLayout
TabWidget [id/tabs]
FrameLayout [id/tabcontent]
Linear Layout [id/tab1]
Linear Layout [id/tab2]
Linear Layout [id/tab3]
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS SIMPLES
<Linearlayout xmlns:android="http://schemas.android.com/apk/res/android">
<TabHost android:id=“@+id/tabhost “
<Linearlayout
<TabWidget android:id=“@+id/tabs “>
<FrameLayout android:id=“@+id/tabcontent “>
<Linearlayout android:id=“@+id/tab1“>
-CONTENIDO—
</Linearlayout>
<Linearlayout android:id=“@+id/tab2“>
-CONTENIDO—
</Linearlayout>
</FrameLayout>
</Linearlayout >
</TabHost>
</Linearlayout >
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
LO PREPARAMOS PARA CONFIGURARLO
CREAMOS LOS OBJETOS TABSPEC
OBTENEMOS LA REFERENCIA DEL TABHOST
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
Resources res = getResources();
TabHost tabs=(TabHost)findViewById(android.R.id.tabhost);
tabs.setup();
TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
AÑADIMOS LA NUEVA PESTAÑA AL CONTROL
ASIGNAMOS UN LAYOUT A CADA PESTAÑA
INDICAMOS TEXTO E ICONO A MOSTRAR
CREAMOS UN OBJETO TABSPEC PARA CADA TAB
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
spec=tabs.newTabSpec("mitab1");
spec.setContent(R.id.tab1);
spec.setIndicator("TAB1",
res.getDrawable(android.R.drawable.ic_btn_speak_now));
tabs.addTab(spec);
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
spec=tabs.newTabSpec("mitab2");
spec.setContent(R.id.tab2);
spec.setIndicator("TAB2",
res.getDrawable(android.R.drawable.ic_dialog_map));
tabs.addTab(spec);
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
CAPTURA DE EVENTOS
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
tabs.setOnTabChangedListener(new
OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
Log.i(“DEMOSTRACIÓN", "Pulsada pestaña: " + tabId);
}
});
TABS SIMPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON INTENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.app.TabActivity;
import android.content.Intent;
TABS CON INTENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PRINCIPAL
LAYOUT
PRINCIPAL
PESTAÑA 1
LAYOUT
PESTAÑA 1
PESTAÑA 2
LAYOUT
PESTAÑA 2
PESTAÑA 3
LAYOUT
PESTAÑA 3
INTENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON INTENT
<Linearlayout xmlns:android="http://schemas.android.com/apk/res/android">
<TabHost android:id=“@+id/tabhost “
<Linearlayout
<TabWidget android:id=“@+id/tabs “>
<FrameLayout android:id=“@+id/tabcontent “>
</FrameLayout>
</Linearlayout >
</TabHost>
</Linearlayout >
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TabHost.TabSpec fotospec = tabs.newTabSpec("fotos");
fotospec.setIndicator("", res.getDrawable(R.drawable.icon_fotos_tab));
Intent photosIntent = new Intent(this, Fotografias.class);
fotospec.setContent(photosIntent);
tabs.addTab(fotospec);
TABS CON INTENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
public class Videos extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos);
}
}
TABS CON INTENT: PESTAÑA.JAVA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON FRAGMENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
TABS CON FRAGMENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PRINCIPAL
LAYOUT
PRINCIPAL
PESTAÑA 1
LAYOUT
PESTAÑA 1
PESTAÑA 2
LAYOUT
PESTAÑA 2
PESTAÑA 3
LAYOUT
PESTAÑA 3
TABS CON FRAGMENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON FRAGMENT
<android.support.v4.app.FragmentTabHost
xmlns:android="http://schemas.android.com/apk/res/android">
<TabHost android:id=“@+id/tabhost “
<Linearlayout
<TabWidget android:id=“@+id/tabs “>
<FrameLayout android:id=“@+id/tabcontent “>
</FrameLayout>
</Linearlayout >
</TabHost>
</android.support.v4.app.FragmentTabHost>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
TabHost.setup(this,getSupportFragmentManager(), android.R.id.tabcontent);
TabHost.addTab(
TabHost.newTabSpec("tab1").setIndicator("Tab 1", null),
Fragmento1.class, null);
TABS CON FRAGMENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragmento1_layout, container,false);
TextView tv = (TextView) v.findViewById(R.id.texto);
tv.setText("TOCADA LA PESTAÑA: "+this.getTag());
return v;
}
TABS CON FRAGMENT: PESTAÑA.JAVA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SCROLLABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
TABS CON FRAGMENT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SCROLLABLE TABS
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager">
</android.support.v4.app. PagerTitleStrip>
android:id="@+id/title“>
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
public class Tabs04 extends FragmentActivity {
ViewPager viewPager=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabs04);
viewPager= (ViewPager) findViewById(R.id.pager);
FragmentManager fragmentManager=getSupportFragmentManager();
viewPager.setAdapter(new MyAdapter(fragmentManager));
}
}
SCROLLABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
@Override
public int getCount() {
return 3; }
@Override
public CharSequence getPageTitle(int position) {
if(position==0) {return “Tab 1”;}
if(position==1) {return “Tab 2”;}
if(position==2) {return “Tab 3”;}
return null;
}
SCROLLABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm); }
@Override
public Fragment getItem(int i) {
Fragment fragment=null;
if(i==0) { fragment=new Fragmento1(); }
if(i==1) { fragment=new Fragmento2(); }
if(i==2) { fragment=new Fragmento3(); }
return fragment;
}
SCROLLABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SWIPEABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.support.v4.app. FragmentTransaction;
SWIPEABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SWIPEABLE TABS
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager">
</android.support.v4.view.ViewPager>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SWIPEABLE TABS
public class Actividad68 extends FragmentActivity {
ViewPager viewPager=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_actividad67);
viewPager= (ViewPager) findViewById(R.id.pager);
final ActionBar actionBar=getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
addTabs(actionBar);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
private void addTabs(ActionBar actionBar)
{
ActionBar.Tab tab1=actionBar.newTab();
tab1.setText("Tab 1");
tab1.setTabListener(this);
actionBar.addTab(tab1);
}
SWIPEABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SWIPEABLE TABS
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
Log.d("VIVZ","onPageScrolled "+i+" "+v+" "+i2);
}
@Override
public void onPageSelected(int i) {
actionBar.setSelectedNavigationItem(i);
Log.d("VIVZ","onPageSelected "+i);
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SWIPEABLE TABS
@Override
public void onPageScrollStateChanged(int i) {
if(i==ViewPager.SCROLL_STATE_IDLE)
Log.d("VIVZ","onPageScrollStateChanged scroll state idle "+i);
if(i==ViewPager.SCROLL_STATE_DRAGGING)
Log.d("VIVZ","onPageScrollStateChanged scroll state dragging "+i);
if(i==ViewPager.SCROLL_STATE_SETTLING)
Log.d("VIVZ","onPageScrollStateChanged scroll state settling "+i);
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm); }
@Override
public Fragment getItem(int i) {
Fragment fragment=null;
if(i==0) { fragment=new Fragmento1(); }
if(i==1) { fragment=new Fragmento2(); }
if(i==2) { fragment=new Fragmento3(); }
return fragment;
}
SWIPEABLE TABS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON MATERIAL
DESIGN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:22.2.0‘
}
TABS: BUILDS GRANDLE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON MATERIAL DESIGN
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scrollable" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@android:color/white" />
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON MATERIAL DESIGN
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabs05);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new Adaptador(getSupportFragmentManager(),
Tabs05.this));
TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON MATERIAL DESIGN: ESTILOS
MANIFEST
TEMA
STYLES
COLOR
DIMENS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TABS CON MATERIAL DESIGN: TABS CON TOOLBAR
<android.support.design.widget.CoordinatorLayout
CODIGO
<android.support.design.widget.AppBarLayout
CODIGO
<android.support.v7.widget.Toolbar
CODIGO
<android.support.design.widget.TabLayout
CODIGO
</android.support.design.widget.AppBarLayout>
CODIGO
<android.support.v4.view.ViewPager
CODIGO
</android.support.design.widget.CoordinatorLayout>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PERSONALIZAR LAS TABS
ACTIVIDAD DE INVESTIGACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
DISPOSITIVOS MÓVILES: TABS

Más contenido relacionado

Similar a DISPOSITIVOS MÓVILES: TABS

Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and Android
Embarcadero Technologies
 
Programming For Non-Programmers (AMEX Remix Edition)
Programming For Non-Programmers (AMEX Remix Edition) Programming For Non-Programmers (AMEX Remix Edition)
Programming For Non-Programmers (AMEX Remix Edition)
Chris Castiglione
 

Similar a DISPOSITIVOS MÓVILES: TABS (20)

Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and Android
 
Agados Function & Feature
Agados Function & FeatureAgados Function & Feature
Agados Function & Feature
 
Android Lab Mannual 18SUITSP5.docx
Android Lab Mannual 18SUITSP5.docxAndroid Lab Mannual 18SUITSP5.docx
Android Lab Mannual 18SUITSP5.docx
 
Vaadin DevDay 2017 - DI your UI
Vaadin DevDay 2017 - DI your UIVaadin DevDay 2017 - DI your UI
Vaadin DevDay 2017 - DI your UI
 
21 android2 updated
21 android2 updated21 android2 updated
21 android2 updated
 
Implementing cast in android
Implementing cast in androidImplementing cast in android
Implementing cast in android
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
아가도스(agados) 기능과 특징 소개
아가도스(agados) 기능과 특징 소개아가도스(agados) 기능과 특징 소개
아가도스(agados) 기능과 특징 소개
 
Ui patterns
Ui patternsUi patterns
Ui patterns
 
Beautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens TooBeautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens Too
 
CD11 - Slates
CD11 - SlatesCD11 - Slates
CD11 - Slates
 
AGADOS function & feature Chapter-01 UI define elements
AGADOS function & feature Chapter-01 UI define elements AGADOS function & feature Chapter-01 UI define elements
AGADOS function & feature Chapter-01 UI define elements
 
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devices
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
 
Ignacio Delgado Portfolio
Ignacio Delgado PortfolioIgnacio Delgado Portfolio
Ignacio Delgado Portfolio
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
 
Noova Symposium - De Maker & Het Platform
Noova Symposium - De Maker & Het PlatformNoova Symposium - De Maker & Het Platform
Noova Symposium - De Maker & Het Platform
 
Programming For Non-Programmers (AMEX Remix Edition)
Programming For Non-Programmers (AMEX Remix Edition) Programming For Non-Programmers (AMEX Remix Edition)
Programming For Non-Programmers (AMEX Remix Edition)
 

Más de Jacinto Cabrera Rodríguez

Más de Jacinto Cabrera Rodríguez (20)

REDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS IIREDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS II
 
OTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTOOTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTO
 
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
 
LAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTELAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTE
 
TOULOUSE LAUTREC
TOULOUSE LAUTRECTOULOUSE LAUTREC
TOULOUSE LAUTREC
 
PRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIAPRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIA
 
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN IIDISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
 
ZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETASZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETAS
 
ZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADORZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADOR
 
TIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIATIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIA
 
CARCASAS DE ORDENADOR
CARCASAS DE ORDENADORCARCASAS DE ORDENADOR
CARCASAS DE ORDENADOR
 
TIPOS DE TORNILLOS
TIPOS DE TORNILLOSTIPOS DE TORNILLOS
TIPOS DE TORNILLOS
 
PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26
 
PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25
 
PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24
 
PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23
 
REDES: TOMAS DE DATOS
REDES: TOMAS DE DATOSREDES: TOMAS DE DATOS
REDES: TOMAS DE DATOS
 
PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22
 
PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21
 
PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20
 

Último

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

DISPOSITIVOS MÓVILES: TABS

  • 1.
  • 3.
  • 4. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA COMENZANDO A PROGRAMAR
  • 5. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA LA CLASE VIEWGROUPS
  • 6. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS
  • 7. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS
  • 8. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON MATERIAL DESIGN SCROLLABLE TABS TABS CON SWIPE VIEWS FIXED TABS TABS
  • 9. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TAB WIDGET TAB HOST TABS: CONSTRUCCIÓN
  • 10. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS: CONSTRUCCIÓN TabHost [id/tabhost] LinearLayout TabWidget [id/tabs] FrameLayout [id/tabcontent] Linear Layout [id/tab1] Linear Layout [id/tab2] Linear Layout [id/tab3]
  • 11. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS SIMPLES
  • 12. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS SIMPLES <Linearlayout xmlns:android="http://schemas.android.com/apk/res/android"> <TabHost android:id=“@+id/tabhost “ <Linearlayout <TabWidget android:id=“@+id/tabs “> <FrameLayout android:id=“@+id/tabcontent “> <Linearlayout android:id=“@+id/tab1“> -CONTENIDO— </Linearlayout> <Linearlayout android:id=“@+id/tab2“> -CONTENIDO— </Linearlayout> </FrameLayout> </Linearlayout > </TabHost> </Linearlayout >
  • 13. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA LO PREPARAMOS PARA CONFIGURARLO CREAMOS LOS OBJETOS TABSPEC OBTENEMOS LA REFERENCIA DEL TABHOST TABS SIMPLES
  • 14. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA Resources res = getResources(); TabHost tabs=(TabHost)findViewById(android.R.id.tabhost); tabs.setup(); TabHost.TabSpec spec=tabs.newTabSpec("mitab1"); TABS SIMPLES
  • 15. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA AÑADIMOS LA NUEVA PESTAÑA AL CONTROL ASIGNAMOS UN LAYOUT A CADA PESTAÑA INDICAMOS TEXTO E ICONO A MOSTRAR CREAMOS UN OBJETO TABSPEC PARA CADA TAB TABS SIMPLES
  • 16. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA spec=tabs.newTabSpec("mitab1"); spec.setContent(R.id.tab1); spec.setIndicator("TAB1", res.getDrawable(android.R.drawable.ic_btn_speak_now)); tabs.addTab(spec); TABS SIMPLES
  • 17. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA spec=tabs.newTabSpec("mitab2"); spec.setContent(R.id.tab2); spec.setIndicator("TAB2", res.getDrawable(android.R.drawable.ic_dialog_map)); tabs.addTab(spec); TABS SIMPLES
  • 18. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA CAPTURA DE EVENTOS TABS SIMPLES
  • 19. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA tabs.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String tabId) { Log.i(“DEMOSTRACIÓN", "Pulsada pestaña: " + tabId); } }); TABS SIMPLES
  • 20. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON INTENT
  • 21. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.app.TabActivity; import android.content.Intent; TABS CON INTENT
  • 22. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PRINCIPAL LAYOUT PRINCIPAL PESTAÑA 1 LAYOUT PESTAÑA 1 PESTAÑA 2 LAYOUT PESTAÑA 2 PESTAÑA 3 LAYOUT PESTAÑA 3 INTENT
  • 23. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON INTENT <Linearlayout xmlns:android="http://schemas.android.com/apk/res/android"> <TabHost android:id=“@+id/tabhost “ <Linearlayout <TabWidget android:id=“@+id/tabs “> <FrameLayout android:id=“@+id/tabcontent “> </FrameLayout> </Linearlayout > </TabHost> </Linearlayout >
  • 24. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TabHost.TabSpec fotospec = tabs.newTabSpec("fotos"); fotospec.setIndicator("", res.getDrawable(R.drawable.icon_fotos_tab)); Intent photosIntent = new Intent(this, Fotografias.class); fotospec.setContent(photosIntent); tabs.addTab(fotospec); TABS CON INTENT
  • 25. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA public class Videos extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.videos); } } TABS CON INTENT: PESTAÑA.JAVA
  • 26. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON FRAGMENT
  • 27. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTabHost; TABS CON FRAGMENT
  • 28. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PRINCIPAL LAYOUT PRINCIPAL PESTAÑA 1 LAYOUT PESTAÑA 1 PESTAÑA 2 LAYOUT PESTAÑA 2 PESTAÑA 3 LAYOUT PESTAÑA 3 TABS CON FRAGMENT
  • 29. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON FRAGMENT <android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"> <TabHost android:id=“@+id/tabhost “ <Linearlayout <TabWidget android:id=“@+id/tabs “> <FrameLayout android:id=“@+id/tabcontent “> </FrameLayout> </Linearlayout > </TabHost> </android.support.v4.app.FragmentTabHost>
  • 30. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); TabHost.setup(this,getSupportFragmentManager(), android.R.id.tabcontent); TabHost.addTab( TabHost.newTabSpec("tab1").setIndicator("Tab 1", null), Fragmento1.class, null); TABS CON FRAGMENT
  • 31. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragmento1_layout, container,false); TextView tv = (TextView) v.findViewById(R.id.texto); tv.setText("TOCADA LA PESTAÑA: "+this.getTag()); return v; } TABS CON FRAGMENT: PESTAÑA.JAVA
  • 32. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SCROLLABLE TABS
  • 33. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; TABS CON FRAGMENT
  • 34. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SCROLLABLE TABS <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager"> </android.support.v4.app. PagerTitleStrip> android:id="@+id/title“> </android.support.v4.view.PagerTitleStrip> </android.support.v4.view.ViewPager>
  • 35. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA public class Tabs04 extends FragmentActivity { ViewPager viewPager=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tabs04); viewPager= (ViewPager) findViewById(R.id.pager); FragmentManager fragmentManager=getSupportFragmentManager(); viewPager.setAdapter(new MyAdapter(fragmentManager)); } } SCROLLABLE TABS
  • 36. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA @Override public int getCount() { return 3; } @Override public CharSequence getPageTitle(int position) { if(position==0) {return “Tab 1”;} if(position==1) {return “Tab 2”;} if(position==2) {return “Tab 3”;} return null; } SCROLLABLE TABS
  • 37. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { Fragment fragment=null; if(i==0) { fragment=new Fragmento1(); } if(i==1) { fragment=new Fragmento2(); } if(i==2) { fragment=new Fragmento3(); } return fragment; } SCROLLABLE TABS
  • 38. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SWIPEABLE TABS
  • 39. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.support.v4.app. FragmentTransaction; SWIPEABLE TABS
  • 40. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SWIPEABLE TABS <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager"> </android.support.v4.view.ViewPager>
  • 41. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SWIPEABLE TABS public class Actividad68 extends FragmentActivity { ViewPager viewPager=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_actividad67); viewPager= (ViewPager) findViewById(R.id.pager); final ActionBar actionBar=getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); addTabs(actionBar); viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
  • 42. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA private void addTabs(ActionBar actionBar) { ActionBar.Tab tab1=actionBar.newTab(); tab1.setText("Tab 1"); tab1.setTabListener(this); actionBar.addTab(tab1); } SWIPEABLE TABS
  • 43. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SWIPEABLE TABS viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i2) { Log.d("VIVZ","onPageScrolled "+i+" "+v+" "+i2); } @Override public void onPageSelected(int i) { actionBar.setSelectedNavigationItem(i); Log.d("VIVZ","onPageSelected "+i); }
  • 44. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SWIPEABLE TABS @Override public void onPageScrollStateChanged(int i) { if(i==ViewPager.SCROLL_STATE_IDLE) Log.d("VIVZ","onPageScrollStateChanged scroll state idle "+i); if(i==ViewPager.SCROLL_STATE_DRAGGING) Log.d("VIVZ","onPageScrollStateChanged scroll state dragging "+i); if(i==ViewPager.SCROLL_STATE_SETTLING) Log.d("VIVZ","onPageScrollStateChanged scroll state settling "+i); }
  • 45. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { Fragment fragment=null; if(i==0) { fragment=new Fragmento1(); } if(i==1) { fragment=new Fragmento2(); } if(i==2) { fragment=new Fragmento3(); } return fragment; } SWIPEABLE TABS
  • 46. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON MATERIAL DESIGN
  • 47. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:design:22.2.0‘ } TABS: BUILDS GRANDLE
  • 48. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON MATERIAL DESIGN <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="scrollable" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" android:background="@android:color/white" />
  • 49. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON MATERIAL DESIGN protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tabs05); ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(new Adaptador(getSupportFragmentManager(), Tabs05.this)); TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); tabLayout.setupWithViewPager(viewPager); }
  • 50. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON MATERIAL DESIGN: ESTILOS MANIFEST TEMA STYLES COLOR DIMENS
  • 51. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TABS CON MATERIAL DESIGN: TABS CON TOOLBAR <android.support.design.widget.CoordinatorLayout CODIGO <android.support.design.widget.AppBarLayout CODIGO <android.support.v7.widget.Toolbar CODIGO <android.support.design.widget.TabLayout CODIGO </android.support.design.widget.AppBarLayout> CODIGO <android.support.v4.view.ViewPager CODIGO </android.support.design.widget.CoordinatorLayout>
  • 52. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PERSONALIZAR LAS TABS ACTIVIDAD DE INVESTIGACIÓN
  • 53. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES