Schnick-Schnack-Schnuck App:

diese Datei ist als activity_main.xml nach Anlegen der App z.B. unter Eclipse in den  Ordner res mit Unterordner layout zu kopieren

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   android:background="#ffffaa"
 
    tools:ignore="MergeRootFrame" >
   
    <EditText
        android:id="@+id/EditTextZahl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Schütteln nicht Rühren" >

    </EditText>

<ImageView
    android:id="@+id/wuerfel"
    android:layout_width="265dp"
    android:layout_height="379dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:src="@drawable/atom" />

</RelativeLayout>
 

das dazu benötigte Java-Programm ist in den Unterordner der Quelle src in der Main.Activity.Java zu kopieren,

Achtung: Sie müssen den Dateinamen ihrer App einbinden, also wo unten com.example.sensor steht , ist ihr Appname einzusetzen

 

 

package com.example.sensor;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.widget.ImageView;


public class MainActivity extends Activity


      MediaPlayer but_sound;
      public SensorManager mgr; 
      public  float max;
      public int zufall;
   


    @Override 
      public void onCreate(Bundle savedInstanceState)
       { 
           super.onCreate(savedInstanceState); 
           setContentView(R.layout.activity_main);
       
     
        max=0;
       
        mgr = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
        mgr.registerListener(listener, mgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); 
      } 
 
    @Override 
    public void onDestroy()
       { 
        super.onDestroy(); 
        mgr.unregisterListener(listener); 
       } 
 
 

private SensorEventListener listener=new SensorEventListener()
    {
       @Override
         public void onSensorChanged(SensorEvent event)
        {
             if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER)
            {
                float x,y,z;
                x=event.values[0];
              
             
                    if(x>max)
                       { max=x; }
           
                   
                   
                  
                         ImageView bild=(ImageView) findViewById(R.id.wuerfel);
                         Drawable neubild=null;
         if(max>19){
                         but_sound=MediaPlayer.create(MainActivity.this, R.raw.klack);
                        but_sound.start();
            
                         zufall=    (int) (Math.random() * (5)) + 1;
                        
                         if(zufall==1){neubild=getResources().getDrawable(R.drawable.spock);}
                        
                         if(zufall==2){neubild=getResources().getDrawable(R.drawable.echse);}
                        
                         if(zufall==3){neubild=getResources().getDrawable(R.drawable.sch);}
                        
                         if(zufall==4){neubild=getResources().getDrawable(R.drawable.papier);}
                        
                         if(zufall==5){neubild=getResources().getDrawable(R.drawable.stein);}
                        
                        
                         max=1;
                        
                         bild.setImageDrawable(neubild);
                     }
                
        }  }
     

     @Override
   public void onAccuracyChanged(Sensor sensor,int accuracy)
       {}

  };
}
       
             
 Die App wird durch Schütteln x>19 (ggf. kleinere Werte einsetzen ) ausgelöst, es ertönt ein Schüttelgeräusch klack.mp3 ( im Ordner raw ) und ein Bild wird im Display angezeigt, hier sind es die Bilder Spock, Echse, Schere, Papier und Stein aus der Serie Big Bang Theorie, ( zwei Geräte über Bluetooth verbunden mit einer Gewinnanzeige sind das nächste Appziel )