Last active
April 27, 2016 11:52
-
-
Save pedrojoya/5136849 to your computer and use it in GitHub Desktop.
PR045-FrameLayout
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<merge xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:animateLayoutChanges="true"> | |
<ImageView | |
android:id="@+id/imgFoto" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:contentDescription="@string/foto_del_dia" | |
android:scaleType="centerCrop" | |
android:src="@drawable/foto"/> | |
<RelativeLayout | |
android:id="@+id/rlPanel" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_gravity="bottom" | |
android:animateLayoutChanges="true" | |
android:background="@color/translucent_grey" | |
android:padding="@dimen/panel_padding"> | |
<TextView | |
android:id="@+id/lblTitulo" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignParentLeft="true" | |
android:layout_alignParentStart="true" | |
android:layout_alignParentTop="true" | |
android:layout_toLeftOf="@+id/imgDetalle" | |
android:layout_toStartOf="@+id/imgDetalle" | |
android:text="@string/foto_del_dia" | |
style="@style/Base.TextAppearance.AppCompat.Headline" | |
android:textColor="@android:color/white"/> | |
<TextView | |
android:id="@+id/lblSubtitulo" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignParentLeft="true" | |
android:layout_alignParentStart="true" | |
android:layout_toLeftOf="@+id/imgDetalle" | |
android:layout_toStartOf="@+id/imgDetalle" | |
android:layout_below="@+id/lblTitulo" | |
android:text="@string/londres" | |
style="@style/Base.TextAppearance.AppCompat.Subhead" | |
android:textColor="@android:color/white"/> | |
<ImageView | |
android:id="@+id/imgDetalle" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignParentRight="true" | |
android:layout_alignParentEnd="true" | |
android:layout_alignParentTop="true" | |
android:clickable="true" | |
android:contentDescription="@string/abrir_detalle" | |
android:src="@drawable/ic_action_navigation_collapse"/> | |
<TextView | |
android:id="@+id/lblDetalle" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_below="@+id/lblSubtitulo" | |
android:padding="@dimen/panel_padding" | |
android:text="@string/detalle" | |
style="@style/Base.TextAppearance.AppCompat.Body2" | |
android:textColor="@android:color/white"/> | |
</RelativeLayout> | |
</merge> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package es.iessaladillo.pedrojoya.pr045; | |
import android.annotation.SuppressLint; | |
import android.graphics.Typeface; | |
import android.os.Bundle; | |
import android.support.v7.app.AppCompatActivity; | |
import android.view.View; | |
import android.view.View.OnClickListener; | |
import android.widget.ImageView; | |
import android.widget.RelativeLayout; | |
import android.widget.TextView; | |
public class MainActivity extends AppCompatActivity implements | |
OnClickListener { | |
// Vistas. | |
private ImageView imgDetalle; | |
private TextView lblDetalle; | |
private RelativeLayout rlPanel; | |
// Al crear la actividad. | |
@SuppressLint("InlinedApi") | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
getWindow().getDecorView().setSystemUiVisibility( | |
View.SYSTEM_UI_FLAG_LAYOUT_STABLE | | |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); | |
setContentView(R.layout.activity_main); | |
// Se obtienen e inicializan las vistas. | |
initVistas(); | |
} | |
// Obtiene e inicializa las vistas. | |
private void initVistas() { | |
rlPanel = (RelativeLayout) findViewById(R.id.rlPanel); | |
ImageView imgFoto = (ImageView) findViewById(R.id.imgFoto); | |
if (imgFoto != null) { | |
imgFoto.setOnClickListener(this); | |
} | |
imgDetalle = (ImageView) findViewById(R.id.imgDetalle); | |
if (imgDetalle != null) { | |
imgDetalle.setOnClickListener(this); | |
} | |
lblDetalle = (TextView) findViewById(R.id.lblDetalle); | |
// Se establece el tipo de letra de los TextView. | |
TextView lblTitulo = (TextView) findViewById(R.id.lblTitulo); | |
if (lblTitulo != null) { | |
lblTitulo.setTypeface(Typeface | |
.createFromAsset(getAssets(), "fonts/alegreya-boldItalic.ttf")); | |
} | |
TextView lblSubtitulo = (TextView) findViewById(R.id.lblSubtitulo); | |
if (lblSubtitulo != null) { | |
lblSubtitulo.setTypeface(Typeface | |
.createFromAsset(getAssets(), "fonts/alegreya-bold.ttf")); | |
} | |
if (lblDetalle != null) { | |
lblDetalle.setVisibility(View.GONE); | |
lblDetalle.setTypeface(Typeface.createFromAsset(getAssets(), | |
"fonts/alegreya-regular.ttf")); | |
} | |
} | |
// Al pulsar sobre una vista cuyo click es gestionada por la actividad. | |
@Override | |
public void onClick(View v) { | |
switch (v.getId()) { | |
case R.id.imgFoto: | |
// Se cambia la visibilidad del panel. | |
togglePanel(); | |
break; | |
case R.id.imgDetalle: | |
// Se cambia la visibilidad del detalle. | |
toggleDetalle(); | |
} | |
} | |
// Cambia la visibilidad del detalle. | |
private void togglePanel() { | |
// Si no está visible se hace visible o viceversa. | |
if (rlPanel.getVisibility() == View.GONE) { | |
rlPanel.setVisibility(View.VISIBLE); | |
} else { | |
rlPanel.setVisibility(View.GONE); | |
} | |
} | |
// Cambia la visibilidad del detalle. | |
private void toggleDetalle() { | |
// Si no está visible se hace visible o viceversa y se cambia el icono | |
// de expansión o contracción. | |
if (lblDetalle.getVisibility() == View.GONE) { | |
lblDetalle.setVisibility(View.VISIBLE); | |
imgDetalle.setImageResource(R.drawable.ic_action_navigation_expand); | |
} else { | |
lblDetalle.setVisibility(View.GONE); | |
imgDetalle | |
.setImageResource(R.drawable.ic_action_navigation_collapse); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment