Translate

21 Eylül 2013 Cumartesi

Android Programlama(2): Ses ve Resim Dosyası Ekleme

    Merhabalar, uzun bir aradan sonra tekrar birlikteyiz :) bu yazımda android projelerimize ses ve resim dosyaları ekleme konusunda elimden geldiğince birşeyler paylaşmaya çalışacağım.
    Öncelikle yapacağımız projeden bahsetmek istiyorum. Sayfamız üzerinde 9 adet buton kontrolü ekleyeceğiz, eklediğimiz butonların background özelliğine resim ekleyerek tıklanma olaylarında ses dosyası çalma işlemini gerçekleştireceğiz. Tabiki bu projemize görsellik ve bir konu bağlamamız gerekli, ilgi çekmek lazım :) Şöyle bir süreç takip edeceğiz öncelikle 9 buton arkaplan resimlerini sevdiğiniz hayvan iconlarını seçerek başlayabilirsiniz. Bu seçim için burdan yada bu linkten faydalanabilirsiniz. Arkaplan resimlerimizi de seçtikten sonra herbir icon için .mp3 uzantılı ses dosyalarını bulmaya başlayabiliriz. Amaç hangi hayvan resmine tıklanırsa ona ait sesin kullanıcıya iletilmesi. Sevimli bir uygulama olacağa benziyor, hadi başlayalım :)
    Öncelikle yeni bir android projesi oluşturuyoruz. Projemizin bulunduğu workspace dosyasına erişip projemizin res/drawable-hdpi/ dosyası içerisine seçtiğimiz 9 adet iconu ekliyoruz. Eclipse üzerinden projenin res dosyası içerisine New->Folder seçerek raw isminde bir dosya ekliyoruz. Workspace içerisine gelerek projemizin res/raw/ dosyası içerisine 9 adet hayvan seslerini içeren .mp3 uzantılı ses dosyalarını ekliyoruz.
    Eclipse tarafına geçerek projemize geçiyoruz. Üst menüden Project->Clean tıklayarak projeye dahil ettiğimiz ses ve resim dosyalarının tanınmasını sağlıyoruz.
 
-activity_main.xml içeriği;

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/arkaplan" >

    <Button
        android:id="@+id/btnKoyun"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="5dp"
        android:layout_y="35dp"
        android:background="@drawable/koyun" />

    <Button
        android:id="@+id/btnCakal"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="110dp"
        android:layout_y="35dp"
        android:background="@drawable/cakal" />

    <Button
        android:id="@+id/btnAslan"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="215dp"
        android:layout_y="35dp"
        android:background="@drawable/aslan" />

    <Button
        android:id="@+id/btnEsek"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="5dp"
        android:layout_y="155dp"
        android:background="@drawable/esek" />

    <Button
        android:id="@+id/btnInek"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="110dp"
        android:layout_y="155dp"
        android:background="@drawable/inek" />

    <Button
        android:id="@+id/btnKedi"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="215dp"
        android:layout_y="155dp"
        android:background="@drawable/kedi" />

    <Button
        android:id="@+id/btnKopek"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="5dp"
        android:layout_y="270dp"
        android:background="@drawable/kopek" />

    <Button
        android:id="@+id/btnKurt"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="215dp"
        android:layout_y="270dp"
        android:background="@drawable/kurt" />

    <Button
        android:id="@+id/btnMaymun"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_x="110dp"
        android:layout_y="270dp"
        android:background="@drawable/maymun" />
   
    </AbsoluteLayout>




-MainActivity.java kod içeriği;

package com.example.hayvansesleri;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

       MediaPlayer sesKoyun,sesCakal,sesAslan,sesEsek,sesInek,sesKedi,sesKopek,sesMaymun,sesKurt;
       Button bKoyun,bCakal,bAslan,bEsek,bInek,bKedi,bKopek,bMaymun,bKurt;
       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);
            
             sesAslan=MediaPlayer.create(MainActivity.this,R.raw.waslan);//ses dosyasını MediaPlayer değişkeniyle ilişkilendiriyoruz.
             sesCakal=MediaPlayer.create(MainActivity.this,R.raw.wcakal);
             sesEsek=MediaPlayer.create(MainActivity.this,R.raw.wesek);
             sesInek=MediaPlayer.create(MainActivity.this,R.raw.winek);
             sesKedi=MediaPlayer.create(MainActivity.this,R.raw.wkedi);
             sesKopek=MediaPlayer.create(MainActivity.this,R.raw.wkopek);
             sesKoyun=MediaPlayer.create(MainActivity.this,R.raw.wkoyun);
             sesKurt=MediaPlayer.create(MainActivity.this,R.raw.wkurt);
             sesMaymun=MediaPlayer.create(MainActivity.this,R.raw.wmaymun);
            
             bAslan=(Button)findViewById(R.id.btnAslan);
             bCakal=(Button)findViewById(R.id.btnCakal);
             bEsek=(Button)findViewById(R.id.btnEsek);
             bInek=(Button)findViewById(R.id.btnInek);
             bKedi=(Button)findViewById(R.id.btnKedi);
             bKopek=(Button)findViewById(R.id.btnKopek);
             bKoyun=(Button)findViewById(R.id.btnKoyun);
             bKurt=(Button)findViewById(R.id.btnKurt);
             bMaymun=(Button)findViewById(R.id.btnMaymun);
            
             bAslan.setOnClickListener(new View.OnClickListener() {
                   
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesAslan.start();//Ses dosyasını başlatıyoruz.
                    }
             });
             bCakal.setOnClickListener(new View.OnClickListener() {
                   
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesCakal.start();
                    }
             });
             bEsek.setOnClickListener(new View.OnClickListener() {
                   
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesEsek.start();
                    }
             });
             bInek.setOnClickListener(new View.OnClickListener() {
                   
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesInek.start();
                    }
             });
             bKedi.setOnClickListener(new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesKedi.start();
                    }
             });
             bKopek.setOnClickListener(new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesKopek.start();
                    }
             });
             bKoyun.setOnClickListener(new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesKoyun.start();
                    }
             });
             bKurt.setOnClickListener(new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesKurt.start();
                    }
             });
             bMaymun.setOnClickListener(new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           sesMaymun.start();
                    }
             });
            
            
       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
             // Inflate the menu; this adds items to the action bar if it is present.
             getMenuInflater().inflate(R.menu.main, menu);
             return true;
       }


}


Projemizi tamamladığımıza göre deneyebiliriz :)


Umarım faydalı bir paylaşım olmuştur. Sonraki paylaşımlarımda görüşmek ümidiyle... :)