Skip to main content

source code suara binatang dengan android programing

buat lah file berextensi .xml di folder layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_followed_top"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1"
android:orientation="vertical"
>
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
>
</GridView>
</LinearLayout>
Buat satu layout lagi di folder layout dengan nama singleimage.xml , untuk menampilkan gambar dalam bentuk satuan, lihat code :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ImageView
android:id="@+id/singleimage"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:contentDescription="gambar tunggal"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_weight="1"
/>

</LinearLayout>
Tahap berikutnya adalah kita akan membuat service sound , sehingga apabila gambar tsb di pencet akan mengeluarkan bunyi binatang sesuai dengan yang telah kita download, kita akan buat satu class dengan nama SoundBase.java, dengan memakai media player : lihat contoh code :
package com.alcytrite.suarabinatang;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.IBinder;

public class SoundBase extends Service {
MediaPlayer media;
public static int[] resource = { R.raw.kodok, R.raw.tokek, R.raw.burung,
R.raw.macan };

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
media = new MediaPlayer();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO do something useful
Bundle extras = intent.getExtras();
int position = (Integer) extras.get("position");
media = MediaPlayer.create(this, SoundBase.resource[position]);
media.setLooping(false);
media.start();
// Toast.makeText(this,position,Toast.LENGTH_LONG).show();
return Service.START_STICKY;
}

@Override
public void onDestroy() {
media.stop();
media.release();
}
}
Untuk menampilkan Image yang telah kita download maka kita buat class ImageAdapter etends BaseAdapter , ini untuk memudahkan kita dalam hal pengaturan urutan Image , lihat contoh code :
package com.alcytrite.suarabinatang;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {

private Context mContext;

// constructor
public ImageAdapter(Context c) {
mContext = c;
}

public static Integer[] mThumbsId = { R.drawable.kodok, R.drawable.tokek,
R.drawable.burung, R.drawable.macan
};

public static String[] thumbString = { "Kodok keok",
"Tokek Koek", "Suara Burung berkicau", "macan Ngamuk" };

@Override
public int getCount() {
// TODO Auto-generated method stub
return mThumbsId.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View view, ViewGroup group) {
// TODO Auto-generated method stub
ImageView imageView;
if (view == null) {
imageView = new ImageView(mContext);
int h = mContext.getResources().getDisplayMetrics().densityDpi;
imageView
.setLayoutParams(new GridView.LayoutParams(h - 45, h - 45));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(1, 1, 1, 1);
} else {
imageView = (ImageView) view;

}
imageView.setImageResource(mThumbsId[position]);
return imageView;
}

}
Untuk menampilkan Image dalam bentuk satuan , kita buat SingleImage.java , berikut contoh code nya  :
package com.alcytrite.suarabinatang;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class SingleImage extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.singleimage);

int position = this.getIntent().getExtras().getInt("position");
ImageView iv = (ImageView) findViewById(R.id.singleimage);
int image = ImageAdapter.mThumbsId[position];
iv.setImageResource(image);
final Intent intent = new Intent(this, SoundBase.class);
intent.putExtra("position", position);
startService(intent);
iv.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopService(intent);
finish();
}
});
}
}
Image dan sound service class sudah kita buat, sekarang kita ubah di MainActivity.java , dimana kita akan tampilkan image , dan kita tambahkan event kalau di klik image tsb maka akan muncul image dalam bentuk satuan dan bunyi suara dari image tsb.
package com.alcytrite.suarabinatang;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnItemClickListener {

GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getBaseContext(), "Hai, Suara binatang akan tampil...",Toast.LENGTH_LONG).show();

setContentView(R.layout.activity_main);

gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(new ImageAdapter(this));
gridView.setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), ImageAdapter.thumbString[position],Toast.LENGTH_SHORT).show();
Intent i = new Intent(this,SingleImage.class);
Bundle b = new Bundle();
b.putInt("position",position);
i.putExtras(b);
startActivity(i);

}

@Override
public void onDestroy() {
super.onDestroy();
Runtime.getRuntime().gc();
}

}
Jangan lupa di file manifest anda perlu tambahkan activity lagi class SingleImage yang telah kita buat dan tambahkan service soundnya.
Anda bisa lihat contoh :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.alcytrite.suarabinatang"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.alcytrite.suarabinatang.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SingleImage"
android:label="@string/app_name" >
</activity>

<service android:name="SoundBase" />


</application>

</manifest>

Comments