X
xsonicx
Neues Mitglied
- 0
Tach zusammen!
Bin mehr oder weniger neu hier im Forum (war 1 Jahr inaktiv).
Wie auch immer, da Java FAST ein Neuland für mich ist (hatte es nur in den ersten beiden Klassen) bräuchte ich nun etwas Hilfe. Zur Zeit probier ich noch Dinge aus, spirch meine Codes habe ich von Tuts etc...
Nun zu meinem "Problem":
Ich habe 2 Dinge von 2 Tuts:
Zuerst eine App mit der man ein Bild am Touchscreen verschieben kann:
In sofern ich diesen Code nicht schon verpfuscht habe passt das so^^.
Nun hab ich mir ein TUT angeschaut mit einem Soundmanager. Dieser funktioniert in dem Fall, sobald man auf den Touchscreen drückt...
Nun würd ich gerne diese beiden Codes zuammenfügen um folgendes zu erreichen:
Ich will, sobald man das BILD antippt, dass ein Ton abgespielt wird. Drückt man jedoch auf einen Fleck wo das bild (NOCH) nicht ist, soll ein andere Ton abgespielt werden. Bin daran schon etwa ~ 5 stunden gesessen und daran regelrecht gescheitert...
Wäre auf jeden fall sehr toll wenn mir hier jemand helfen kann! Es würde mir auch auch reichen, wenn einer einen Einfachen Sourcecode reinstellen kann mit einer KLEINEN Funktion und einem Sound damit ich mir mal die Struktur anschauen kann (finde im Internet nicht in dieser Kombi... Immer nur einzeln und da steh ich leider an)
MfG
Bin mehr oder weniger neu hier im Forum (war 1 Jahr inaktiv).
Wie auch immer, da Java FAST ein Neuland für mich ist (hatte es nur in den ersten beiden Klassen) bräuchte ich nun etwas Hilfe. Zur Zeit probier ich noch Dinge aus, spirch meine Codes habe ich von Tuts etc...
Nun zu meinem "Problem":
Ich habe 2 Dinge von 2 Tuts:
Zuerst eine App mit der man ein Bild am Touchscreen verschieben kann:
Code:
public class NochmalActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = findViewById(R.id.textView1);
setContentView(new Panel(this));
}
class Panel extends SurfaceView implements SurfaceHolder.Callback{
private TutorialThread _thread;
private int _x = 20;
private int _y = 20;
Bitmap mBitmap;
public Panel(Context context){
super(context);
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ziehmich);
getHolder().addCallback(this);
_thread = new TutorialThread(getHolder(), this);
setFocusable(true);
}
public void onDraw (Canvas canvas){
Bitmap _scratch = BitmapFactory.decodeResource(getResources(), R.drawable.ziehmich);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(_scratch, _x, _y,null);
}
public boolean onTouchEvent(MotionEvent event){
_x = (int) event.getX();
_y = (int) event.getY();
return true;
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
_thread.setRunning(true);
_thread.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
_thread.setRunning(false);
while (retry){
try{
_thread.join();
retry = false;
} catch (InterruptedException e){
}
}
}
}
class TutorialThread extends Thread {
private SurfaceHolder _surfaceHolder;
private Panel _panel;
private boolean _run = false;
public TutorialThread(SurfaceHolder surfaceHolder, Panel panel) {
_surfaceHolder = surfaceHolder;
_panel = panel;
}
public void setRunning(boolean run) {
_run = run;
}
@Override
public void run() {
Canvas c;
while (_run) {
c = null;
try {
c = _surfaceHolder.lockCanvas(null);
synchronized (_surfaceHolder) {
_panel.onDraw(c);
}
} finally {
// do this in a finally so that if an exception is thrown
// during the above, we don't leave the Surface in an
// inconsistent state
if (c != null) {
_surfaceHolder.unlockCanvasAndPost(c);
}
}
}
}
}
Nun hab ich mir ein TUT angeschaut mit einem Soundmanager. Dieser funktioniert in dem Fall, sobald man auf den Touchscreen drückt...
Code:
public class PlaySoundAct extends Activity implements OnTouchListener {
private SoundPool soundPool;
private int soundID;
boolean loaded = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View view = findViewById(R.id.textView1);
view.setOnTouchListener(this);
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
// TODO Auto-generated method stub
loaded = true;
}
});
soundID = soundPool.load(this, R.raw.sound1, 1);
}
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume / maxVolume;
if (loaded){
soundPool.play(soundID, volume, volume, 1, 0, 1f);
Log.e("Test", "Sound gespielt");
}
}
// TODO Auto-generated method stub
return false;
}
}
Ich will, sobald man das BILD antippt, dass ein Ton abgespielt wird. Drückt man jedoch auf einen Fleck wo das bild (NOCH) nicht ist, soll ein andere Ton abgespielt werden. Bin daran schon etwa ~ 5 stunden gesessen und daran regelrecht gescheitert...
Wäre auf jeden fall sehr toll wenn mir hier jemand helfen kann! Es würde mir auch auch reichen, wenn einer einen Einfachen Sourcecode reinstellen kann mit einer KLEINEN Funktion und einem Sound damit ich mir mal die Struktur anschauen kann (finde im Internet nicht in dieser Kombi... Immer nur einzeln und da steh ich leider an)
MfG
Zuletzt bearbeitet: