Añadir view Activity android java

Blog >Lista Soluciones > Insertar View en Activity




Añadir View a activity

En esta ocasión añadiremos una vista en la que hemos guardado un recurso.xml y la insertaremos mediante código java en nuestra activity al pulsar sobre un botón, posteriormente haremos que con sólo tocar la pantalla, desaparezca. 
 
Como la idea es una pizarra donde puedan escribir ofertas, vamos a bajarnos esta fuente que se parece a la escritura con una tiza, y en nuestro proyecto, añadimos la carpeta sino la tenemos : assets/fonts.

Ahora nuestra fuente la insertamos en esa carpeta y añadimos esta imágen al proyecto, descargàndola y añadiendola a la carpeta res/drawable.





Bien, ahora esa imágen la vamos a usar creando un nuevo recurso.xml que quedaría de esta manera :


PIZARRA.XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:orientation="vertical"
     >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:background="@drawable/pizarra"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="35dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Oferta"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="@android:color/white"
                android:textSize="30sp" />

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

Como veis, vamos ajustando los layouts con márgenes para una mejor apariencia,y ya hemos echo uso de nuestro recurso con la imagen poniéndolo como background de un layout, vamos a ver como queda el main :

MAIN

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  //aqui se pone antes porque sino da error
  setContentView(R.layout.activity_main);
  context=this;
  instanciarElementos();
  altas();
  listado=listaTotal();
  layout = (ViewGroup) findViewById(R.id.layoutPrncipalMain); 
  
  
  
  sansation = Typeface.createFromAsset(getAssets(),"fonts/Sansation_Bold.ttf");
  
  
  
  bPruebas=(Button) findViewById(R.id.bofertaPrueba);
  bPruebas.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) { 
    seEstaMostrando=1;   
    addOferta();
   }
   
  });

 }

    private void addOferta()
    {
        LayoutInflater inflater = LayoutInflater.from(this);
        //RECOJEMOS ID DEL CONTENEDOR
        int id = R.layout.pizarra;
        //FUENTE Y TEXTO
        TextView Oferta;
     Typeface TIZA;
     
     TIZA = Typeface.createFromAsset(getAssets(),"fonts/Rudiment.ttf");
        RelativeLayout relativeLayout = (RelativeLayout) inflater.inflate(id, null, false);
        //AÑADIMOS VISTA
        layout.addView(relativeLayout);  
        
        
  Oferta=(TextView) findViewById(R.id.offfert);
  Oferta.setText("THEBESTANDROIDE.BLOGSPOT.COM, THEBESTANDROIDE.BLOGSPOT.COM, THEBESTANDROIDE.BLOGSPOT.COM, THEBESTANDROIDE.BLOGSPOT.COM, THEBESTANDROIDE.BLOGSPOT.COM");
  Oferta.setTypeface(TIZA);
         
    }



Ahora al pulsar el botón, esta vista aparecerá y ya de ahí no se moverá :



Bien ahora le vamos a añadir el gesto para que al tocar la pantalla se quite, consiguiendo un efecto de ventana de quita y pon.

ahora hacemos que la clase herede de
implements OnGesturePerformedListener

Para poder insertar estos métodos, que uno nos le imponen y otro le necesitamos, y ya está completado, sólo queda jugar con la variable seEstaMostrando para cuando queramos mostrarlo u ocultarlo :
 @Override
 public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
  
 }
 
    @Override
 public boolean onTouchEvent(MotionEvent event) {
  // TODO Auto-generated method stub
  if (seEstaMostrando==1){
  System.out.println("TOCO TOCO TOCOOOOOOO");
   VistaOferta.setVisibility(View.GONE);
   seEstaMostrando=0;
  }
  return super.onTouchEvent(event);
 }




Compartir Compartir Compartir Compartir



Aplicacion android con orientacion vetical (portrait) solo

Blog >Lista Soluciones > Orientación sólo vertical (Portrait)

Vamos a configurar nuestra aplicación android para que se ejecute sólo con orientación vertical o portrait.






Esto se hace de una forma muy sencilla, vamos a nuestro AndroidManifiest.xml y añadimos esta línea:


<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <application>
        <activity android:name="mi.paquete.MiActivity"
                  android:screenOrientation="portrait" />
    </application>
</manifest>

Pero oJoOoOo !! También se puede hacer desde la clase java de la actividad, en el onCreate : 


setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


Y ya está, esta función podemos implementarla también si queremos en alguna ocasión manejar algo en el cambio de orientación :



@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
 
    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}







Más info, en el sitio oficial aquí.



Compartir Compartir Compartir Compartir