Tutorial Android Studio : Membuat Web Browser Menggunakan WebView

Tutorial Android Studio : Membuat Web Browser Menggunakan WebView –Pada kesempatan kali ini,kita akan mencoba membuat web browser sederhana menggunakan WebView. WebView merupakan salah satu class pada Android Studio yang biasa digunakan untuk menjalankan aplikasi mobile berbasis web seperti HTML5,menampilkan Jquery,JavaScript dll.Ketika menggunakan WebView,maka kita akan menggunakan beberapa class Webkit,seperti WebViewClient,WebSetting.

Screenshot_20170522-160449

Sebelum memulai membuat web browser,pastikan bahwa anda telah memahami beberapa dasar-dasar penggunakaan Android Studio,seperti bagaimana membuat project,membuat Activity dan melakukan run/debugging pada aplikasi.Ok,langsung saja,berikut langkah-langkah membuat aplikasi web browser sederhana di Android Studio menggunakan WebView.

1.Buat project terlebih dahulu,klik File >New Project,kemudian masukkan nama project/aplikasi,kemudian Klik Next

image

pilih minimun SDK perangkat yang akan digunakan,klik Next

image

Pilih Empty  Activity,kemudian klik Next ,kemudian beri nama Activity  atau biarkan default,kemudian klik Finish

image

2.Buat desain UI(User Interface) atau tampilan web browser yang akan dibuat,misalnya seperti gambar di bawah

image

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="oc.startup.ra.progressbarwebview.MainActivity">

<WebView
android:id="@+id/webView1"
android:layout_width="330dp"
android:layout_height="450dp"
android:background="?android:attr/colorBackground"
android:layout_alignStart="@+id/edturl"
android:layout_below="@+id/edturl"
android:layout_alignEnd="@+id/btnGo"></WebView>

<EditText
android:id="@+id/edturl"
android:layout_width="250dp"
android:layout_height="44dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:background="@android:color/background_light"
android:hint=" Masukkan URL"
android:layout_alignParentStart="true" />

<ProgressBar
android:id="@+id/progbar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_alignStart="@+id/edturl"
android:layout_below="@+id/btnGo"
android:background="@android:color/background_light"
android:progressBackgroundTint="@android:color/holo_green_light"
android:layout_alignEnd="@+id/webView1" />

<ImageButton
android:id="@+id/btnGo"
android:layout_width="50dp"
android:layout_height="40dp"
android:background="?android:attr/colorButtonNormal"
android:onClick="gotoUrl"
ads:srcCompat="?android:attr/actionModeWebSearchDrawable"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/edturl" />


</RelativeLayout>

3.Selanjutnya,buat desain/layout menu refresh,stop,back,forward,dan setting nya.

image

Buat direktori baru dengan nama “menu”,letakkan di dalam direktori res,kemudian buat file xml layout baru di dalam direktori menu,dengan nama file main_menu.xml

image

main_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="10dp"
android:layout_width="10dp"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
android:title="setting"
android:orderInCategory="100" app:showAsAction="never" />

<item android:id="@+id/btn_refresh"
android:title="refresh"
android:onClick="goRefresh"/>

<item android:id="@+id/btn_stop"
android:title="stop"
android:onClick="goStop"/>

<item android:id="@+id/btn_goback"
android:title="back"
android:onClick="goBack"/>

<item android:id="@+id/btn_gofoward"
android:title="forward"
android:onClick="goForward"/>

</menu>

4.Kemudian ,edit/konfigurasi file MainActivity.java

MainActivity.java

package com.otodidaker.root.webbrowserotodidakercom;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.view.View;
import android.widget.ProgressBar;

public class MainActivity extends ActionBarActivity{
public WebView webView;
ProgressBar loadprobar;
String URL;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

webView =(WebView) findViewById(R.id.webView1);
webView.setWebViewClient(new WebViewClient());
WebSettings websett =webView.getSettings();
websett.setJavaScriptEnabled(true);

//Source code progress bar

loadprobar=(ProgressBar) findViewById(R.id.progbar1);
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
loadprobar.setProgress(newProgress);

if (newProgress == 100) {
loadprobar.setVisibility(View.GONE);
} else {
loadprobar.setVisibility(View.VISIBLE);
}
}

});

}

//Source code menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}

         public void goRefresh(MenuItem item) {
          webView.reload();
         }
 
         public void goStop(MenuItem item) {
           webView.stopLoading();
        }
   
        public void goBack(MenuItem item) {
          webView.goBack();
        }
   
        public void goForward(MenuItem item) {
          webView.goForward();
        }

//Source code pencarian

public void gotoUrl(View view){
EditText editturl =(EditText) findViewById(R.id.edturl);
URL = editturl.getText().toString();
webView.loadUrl("http://www.google.com/search?q=" + URL.trim());
}




}

 

5.Edit file AndroidManifest.xml,dengan menambahkan script di bawah

<uses-permission android:name="android.permission.INTERNET"/>

sehingga menjadi

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.otodidaker.root.webbrowserotodidakercom">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

Terakhir,lakukan running test untuk melihat hasilnya.

Hasilnya :

                        Screenshot_20170522-160449       Screenshot_20170522-160457

Jika aplikasi berhasil menampilkan hasil pencarian (browsing/searching) dan menu berfungsi dengan baik,berarti aplikasi telah berjalan dengan baik.

Demikian postingan saya kali ini tentang Tutorial Android Studio : Membuat Web Browser Menggunakan WebView,semoga bermanfaat,sampai ketemu di tutorial Android Studio berikutnya,terima kasih.

Tutorial Android Studio : Cara Mengirim Data Antar Activity

Tutorial Android Studio : Cara Kirim Data Antar Activity—Pada tutorial sebelumnya,kita telah belajar tentang Mengenal Activity Dan Contoh Penggunaanya.Jadi Activity merupakan salah satu komponen aplikasi Android yang mewakili sebuah User Interface(UI) atau tampilan untuk pengguna.Dalam sebuah aplikasi ,bisa terdapat satu atau lebih activity yang saling berhubungan antara satu dengan yg lain.Oleh karena itu sangat penting untuk kita pelajari bagaimana cara mengirim data/value dari sebuah activity ke activity yang lain.

aaa

Cara Mengirim Data Antar Activity Menggunakan Intent

Untuk mengirim data antar activity,kita bisa menggunakan 2 cara,yaitu menggunakan Intent atau menggunakan Bundle.Namun perlu anda ketahui bahwa tidak semua tipe data bisa kita lewatkan melalui activity seperti sebuah file.Data yang bisa kita kirim hanya berbentuk Angka (Integer,float,double),String,ArrayList,Boolean,char,array dan yang lainnya.Kali ini,kita akan mencoba melakukan parse antar activity dengan menggunakan Intent dan Bundle.

1.Buat 2 buah activity dengan layout seperti di bawah

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.belajarparse.MainActivity">

<Button
android:id="@+id/btnsubmitintent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit Via Intent"
android:layout_above="@+id/btnsubmitbundle"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Activity 1"
android:layout_marginTop="28dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

<EditText
android:id="@+id/edtData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="Masukkan isi pesan"
android:layout_marginBottom="23dp"
android:layout_above="@+id/btnsubmitintent"
android:layout_centerHorizontal="true" />

<Button
android:id="@+id/btnsubmitbundle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit Via Bundle"
android:layout_centerVertical="true"
android:layout_alignStart="@+id/btnsubmitintent" />

</RelativeLayout>

Output:

image

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.belajarparse.MainActivity">

<TextView
android:id="@+id/tvpesan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="---------"
android:layout_marginTop="30dp"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="42dp"
android:text="Activity 2"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="33dp"
android:text="isi pesan :"
android:layout_below="@+id/textView3"
android:layout_alignEnd="@+id/textView3" />

</RelativeLayout>

Output:

image

2.Edit setiap class activitynya seperti di bawah

Pada class MainActivity.java,kita menginisiasikan terlebih dahulu widget yang akan di gunakan yang dalam hal ini adalah EditText dan Button,kemudian menginisiasikan metode pengiriman data.

MainActivity.java

package com.example.root.belajarparse;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Button;
import android.content.Intent;
import android.view.View;
import android.support.annotation.Nullable;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final EditText data=(EditText) findViewById(R.id.edtData);
Button submitbundle =(Button) findViewById(R.id.btnsubmitbundle);
Button submitintent =(Button) findViewById(R.id.btnsubmitintent);

submitbundle.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){

Intent intent =new Intent(MainActivity.this ,Main2Activity.class);
intent.putExtra("data",data.getText().toString());
startActivity(intent);


}

});
submitintent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle=new Bundle();
bundle.putString("data",data.getText().toString());
Intent intent2 = new Intent(MainActivity.this,Main2Activity.class);
intent2.putExtras(bundle);
startActivity(intent2);
}
});


}
}

Main2Activity.java

package com.example.root.belajarparse;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.TextView;
public class Main2Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

TextView data =(TextView) findViewById(R.id.tvpesan);

if(getIntent().getExtras()!=null){
Bundle bundle = getIntent().getExtras();
data.setText(getIntent().getStringExtra("data"));
}else {
data.setText(getIntent().getStringExtra("data"));
}


}
}

Jika diperhatikan metode pengiriman via Bundle dan Intent,sekilas hampir sama,yaitu menggunakan objek Intent,hanya saja yang membedakan adalah pada Bundle,data yang dikirim akan di bungkus terelebih dahulu.

3.Kemudian jalankan dan lihat hasilnya.

                            Screenshot_20170430-170115   Screenshot_20170430-170122 

Demikian tutorial kali ini tentang  Tutorial Android Studio : Cara Mengirim Data Antar Activity,semoga bermanfaat,terima kasih.

Tutorial Android Studio : Cara Membuat Splash Screen Dengan Image Rotation

Tutorial Android Studio : Cara Membuat Splash Screen Dengan Image Rotation—Sebelumnya,kita telah belajar bagaimana membuat sebuah splash screen sederhana dengan menggunakan image biasa.Kali ini,kita akan belajar bagaimana membuat tampilan atau animasi Splash screen menjadi lebih menarik dengan menggunakan gambar ,yang kemudian akan kita beri efek rotasi/berputar 360 derajat.

image

Untuk membuat gambar dapat melakukan rotate 360 derajat secara otomatis,kita menggunakan komponen yang disebut thread.Thread merupakan salah satu komponen aplikasi Android  yang berfungsi meningkatkatkan kemampuan/performa sebuah sistem di dalam menjalankan sebuah proses.

1.Buat sebuah project baru,klik File>New>New Project

2.Buat desain layout splash,di sini,saya akan merotate 2 buah gambar,dengan desain layout seperti di bawah.Jangan lupa menaruh gambar yang akan digunakan ke direktori drawable.

image

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.myapplication.MainActivity">

<ImageView
android:id="@+id/rotate_image"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/logow1"
android:onClick="loop"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />

<ImageView
android:id="@+id/rotate_image2"
android:layout_width="110dp"
android:layout_height="110dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
app:srcCompat="@drawable/logoq" />


</RelativeLayout>

3.Kemudian buat direktori anim di dalam direktori res,kemudian isikan dengan file xml baru

image

Untuk layout rotate gambar pertama,konfigurasinya seperti di bawah

android_rotate_animation.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="2500"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toDegrees="360" />
</set>

Untuk layout rotate gambar kedua :

android_rotate_animation2.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="2500"
android:fromDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toDegrees="0" />
</set>

Yang membedakan ke 2 layout rotate di atas adalah arah rotasinya.

4.Selanjutnya,isikan kode di bawah ini pada class MainActivity.java

MainActivity.java

package com.example.root.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.os.Handler;
import android.view.Window;
public class MainActivity extends AppCompatActivity {
ImageView rotateImage;

/* waktu */
public int waktu=0000;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
/*Thread gambar 1*/
new Handler().postDelayed(new Thread() {


@Override

public void run() {
rotateImage = (ImageView) findViewById(R.id.rotate_image);
Animation startRotateAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.android_rotate_animation);
rotateImage.startAnimation(startRotateAnimation);

}
},waktu);

/*Thread gambar 2*/
new Handler().postDelayed(new Thread() {


@Override

public void run() {
rotateImage = (ImageView) findViewById(R.id.rotate_image2);
Animation startRotateAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.android_rotate_animation2);
rotateImage.startAnimation(startRotateAnimation);

}
},waktu);


}
/*Pada saat gambar di tekan*/
public void loop(View v){
rotateImage = (ImageView) findViewById(R.id.rotate_image);
Animation startRotateAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.android_rotate_animation);
rotateImage.startAnimation(startRotateAnimation);
}


}

Kemudian coba lakukan run test dan lihat hasilnya.

Pada saat aplikasi dijalankan,gambar pertama akan merotasi dari 0 ke 360 derajat alias searah jarum jam.Sedangkan gambar ke 2 ,berotasi berlawanan dengan arah jarum jam.

Demikian tutorial kali ini tentang Tutorial Android Studio : Cara Membuat Splash Screen Dengan Image Rotation,semoga bermanfaat.

Tutorial Android Studio : Membuat Aplikasi Pemutar Musik Dengan Background Services

Tutorial Android Studio : Membuat Aplikasi Pemutar Musik –Pada tutorial sebelumnya,kita telah belajar bagaimana Cara Membuat Splash Screen Pada Aplikasi Android,kali ini,kita akan mencoba membuat aplikasi pemutar musik menggunakan Android Studio.

Jadi,pada saat kita memutar musik,kemudian ketika menekan tombol home atau membuka aplikasi lain,musik tetap berjalan,alias berjalan pada background service.apa itu Background Service?Background service merupakan salah satu komponen pada aplikasi Android yang berfungsi melakukan proses tersendiri di bagian background/belakang  sistem.

1.Buat project/aplikasi baru,dengan nama

2.Beri nama activity nya dengan nama activity_musik.xml .

image

activity_musik.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_musik"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.zhulachmad.masih_latihan.Musik">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PLAY"
android:id="@+id/btnPLAY"
android:layout_marginTop="164dp"
android:layout_alignParentTop="true"
android:layout_toStartOf="@+id/btnPAUSE" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="STOP"
android:id="@+id/btnSTOP"
android:layout_alignTop="@+id/btnPAUSE"
android:layout_toRightOf="@+id/btnPAUSE"
android:layout_toEndOf="@+id/btnPAUSE"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PAUSE"
android:id="@+id/btnPAUSE"
android:layout_alignTop="@+id/btnPLAY"
android:layout_centerHorizontal="true"/>

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="57dp"
android:text="MP3 Player" />

</RelativeLayout>

3.Buat direktori baru dengan nama raw ,kemudian masukkan file musik ke dalamnya

image

4.Edit class Musik.java

Musik.java

package com.zhulachmad.masih_latihan;



import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import java.io.IOException;


public class Musik extends AppCompatActivity implements OnClickListener{
private Button btnPlay;
private Button btnPause;
private Button btnStop;
private MediaPlayer mp;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_musik);


mp = new MediaPlayer();

btnPlay = (Button) findViewById(R.id.btnPLAY);
btnPause = (Button) findViewById(R.id.btnPAUSE);
btnStop = (Button) findViewById(R.id.btnSTOP);

stateAwal();

btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play();
btnPlay.setEnabled(false);
btnPause.setEnabled(true);
btnStop.setEnabled(true);
}
});

btnPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pause();
}
});

btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stop();
}
});
}

public void onClick(View v){
switch (v.getId()){
case R.id.btnPLAY:
startService(new Intent(this,MusikService.class));
break;
case R.id.btnSTOP:
stopService(new Intent(this,MusikService.class));
break;
}
}

/** State Awal / Pertama Dijalankan */
public void stateAwal(){
btnPlay.setEnabled(true);
btnPause.setEnabled(false);
btnStop.setEnabled(false);
}

/** Dijalankan Oleh Tombol Play */
private void play() {
/** Memanggil File MP3 "indonesiaraya.mp3" */
mp = MediaPlayer.create(this, R.raw.adzan);

try {
mp.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

/** Menjalankan Audio */
mp.start();

/** Penanganan Ketika Suara Berakhir */
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stateAwal();
}
});
}

/** Dijalankan Oleh Tombol Pause */
public void pause(){
if(mp.isPlaying()){
if(mp!=null){
mp.pause();

}
} else {
if(mp!=null){
mp.start();

}
}
}

/** Dijalankan Oleh Tombol Stop */
public void stop(){
mp.stop();

try{
mp.prepare();
mp.seekTo(0);
}catch (Throwable t) {
t.printStackTrace();
}

stateAwal();
}

}

5.Selanjutnya buat class baru untuk background servicenya

MusikService.java

package com.zhulachmad.masih_latihan;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;

public class MusikService extends Service {

MediaPlayer mp;

@Override
public IBinder onBind(Intent arg0){
return null;
}
@Override
public void onCreate(){
mp=MediaPlayer.create(this, R.raw.adzan);
mp.setLooping(false);
}

public void onStart(Intent intent,int startid){
mp.start();
}
public void onDestroy(){
mp.stop();
}

}

Kemudian coba jalankan aplikasinya,dan lihat hasilnya,dan pada saat musikny sedang berjalan,coba tekan tombol home,apabila musiknya masih berjalan,berarti background service juga sudah berjalan.

Demikian postingan saya kali ini tentang Tutorial Android Studio : Membuat Aplikasi Pemutar Musik Dengan Background Services,semoga bermanfaat.

Tutorial Android Studio : Cara Membuat Splash Screen Aplikasi Android
Tutorial Android Studio :Cara Membuat Splash Screen Aplikasi Android—Splash screen merupakan salah satu jenis tampilan animasi berdurasi pendek yang biasa ditampilkan ketika membuka sebuah aplikasi.Splash screen biasanya berisi tampilan logo ataupun informasi dari sebuah aplikasi yang dimunculkan pada saat membuka aplikasi dan akan hilang pada saat masuk ke menu utama aplikasinya.Penggunaan Splash screen pada aplikasi membuat tampilan sebuah aplikasi lebih menarik dan lebih profesional.
image
Sebuah Splash screen terdiri atas satu buah activity yang selanjutnya akan di konfigurasi agar  hilang secara perlahan menggunakan skema transition.Selain activity,Splash screen juga menggunakan sebuah thread.Apa itu thread?.Thread merupakan salah satu class yang terdapat pada bahasa pemrograman Java yang berfungsi menambah atau mempercepat sebuah proses yang sedang berjalan untuk meningkatkan performa dari sebuah aplikasi.
Cara Membuat Splash Screen Aplikasi Android
1.Buat aplikasi/project baru.
2.Import gambar/logo yang akan di gunakan,dan letakkan di directory drawable.
image
3.Edit activity_main.xml untuk membuat layout/desain UI dari splash screen.,atau desain sesuai yang Anda inginkan.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.zhulachmad.masih_latihan.MainActivity">

    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="58dp" />

    <ImageView
        android:src="@drawable/ic_launcher"
        android:layout_width="500dp"
        android:layout_height="300dp"
        android:scaleType="fitXY"
        android:layout_above="@+id/progressBar1"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="11dp" />


</RelativeLayout>
4.Selanjutnya,buat file xml fadein dan fadeout  nya,dan letakkan di direktori layout.
fadein.xml
<?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="1000"
        android:fromAlpha="0.0"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:toAlpha="1.0"/>
fadeout.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="1000"
    android:fromAlpha="1.0"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:toAlpha="0.0"/>

5.Buat layout /activity yang akan di tampilkan ke user setelah splash screen berakhir,di sini,saya menggunakan layout/tampilan login.
activity_login.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_login"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.zhulachmad.masih_latihan.Login">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:hint="Username"
        android:ems="10"
        android:id="@+id/edtuname"
        android:layout_above="@+id/edtpass"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:hint="Password"
        android:ems="10"
        android:id="@+id/edtpass"
        android:layout_above="@+id/btnDaftar"
        android:layout_alignStart="@+id/edtuname"
        android:layout_marginBottom="49dp" />

    <Button
        android:text="register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="53dp"
        android:id="@+id/btnDaftar"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="70dp" />

    <Button
        android:text="login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btnLogin"
        android:layout_alignBaseline="@+id/btnDaftar"
        android:layout_alignBottom="@+id/btnDaftar"
        android:layout_alignEnd="@+id/edtpass"
        android:onClick="musikKlik (Login)" />

</RelativeLayout>
6.Kemudian edit class MainActivity.java
MainActivity.java
package com.zhulachmad.masih_latihan;
import android.app.Activity; import android.os.Bundle; import android.content.Intent; import android.os.Handler; import android.view.Window; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.splash); /*menjalankan splash screen dan menu menggunakan delayed thread*/ new Handler().postDelayed(new Thread() { @Override public void run() {
/* menampilkan aktivity login setelah splash screen berakhir*/ Intent mainMenu= new Intent(MainActivity.this,Login.class); startActivity(mainMenu); finish(); overridePendingTransition(R.layout.fadein,R.layout.fadeout); } }, 3000); } }
Hasilnya :
sss
Pada saat di aplikasi di jalankan,maka akan menampilkan splash screen selama 3 detik,kemudian perlahan menghilang,dan kemudian menampilkan halaman login.
Demikian postingan saya kali ini tentang Tutorial Android Studio : Cara Membuat Splash Screen Aplikasi Android,semoga bermanfaat,sampai ketemu di tutorial Android studio selanjutnya.
Tutorial Android Studio: Mengenal Activity Dan Contoh Penggunaannya

Tutorial Android Studio: Mengenal Activity Dan Contoh Penggunaannya—Activity merupakan salah satu komponen di dalam sebuah aplikasi yang mewakili sebuah UI(User Interface),contohnya seperti pada aplikasi Email,terdapat activity untuk menulis Email,kotak masuk,pesan terkirim,draft.Itulah salah satu contoh bentuk activity yang biasa kita temukan dalam sebuah aplikasi.
Example_sketch
Siklus hidup/lifecycle sebuah activity
Sama seperti komponen lainnya,sebuah activity memiliki siklus/lifecycle.Dalam pengimplementasian  sebuah activity, terdapat beberapa siklus yang mengatur proses penggunaan sebuah activity.
2CP6n
onCreate() ,method ini dipanggil ketika activity pertama kali dibuat.
onStart(),method ini  dipanggil ketika activity terlihat oleh user
onResume(),dipanggil saat aplikasi  mulai berinteraksi dengan user.
onPause(), dipanggil saat aplikasi yang sedang dijalankan kembali ke halaman sebelumnya ataupun karena ada activity baru yang dijalankan.
onStop(), dimana activity sudah tidak terlihat,atau digantikan oleh activity lainnya
onRestart(),Activity kembali menampilkan user interface setelah sebelumnya berada di kondisi onStop().
onDestroy(),method ini dipanggil saat aplikasi benar-benar berhenti.

Contoh penggunaan activity

Setelah memahami siklus hidup dari sebuah activity,kali ini,kita akan mencoba bagaimana mengimplementasikan sebuah activity.Jadi kita akan mencoba menghubungkan 2 activity.
Ok,langsung saja,buat project baru,gunakan saja  Empty activity.

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.root.belajaractivity.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity 1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.131"
        android:id="@+id/textView2"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="73dp" />

    <Button
        android:id="@+id/buttonnext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ke Activity 2"
        tools:layout_editor_absoluteX="133dp"
        tools:layout_editor_absoluteY="125dp"
        android:layout_marginTop="51dp"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true" />

</RelativeLayout>
MainActivity.java
package com.example.root.belajaractivity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.content.Intent;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button next=(Button) findViewById(R.id.buttonnext);
        next.setOnClickListener(new View.OnClickListener(){

            public void onClick(View v){
                Intent myintent=new Intent(v.getContext(),Main2Activity.class);
                startActivity(myintent);
            }
        });

    }
}
activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.root.belajaractivity.Main2Activity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity 2"
        tools:layout_editor_absoluteX="152dp"
        tools:layout_editor_absoluteY="68dp"
        android:layout_marginTop="74dp"
        android:layout_below="@+id/guideline"
        android:layout_centerHorizontal="true" />

    <Button
        android:id="@+id/buttonback"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ke Activity 1"
        tools:layout_editor_absoluteX="137dp"
        tools:layout_editor_absoluteY="134dp"
        android:layout_marginTop="36dp"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true" />


</RelativeLayout>
Main2Activity.java
package com.example.root.belajaractivity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        Button back=(Button) findViewById(R.id.buttonback);
        back.setOnClickListener(new View.OnClickListener(){

            public void onClick(View v){
                Intent myintent=new Intent();
               setResult(RESULT_OK,myintent);
                finish();
            }
        });
    }
}
Hasilnya :
Pada saat Button “Ke Activity 2 “ di tekan,maka akan berpindah ke activity2,begitupun sebaliknya.
                         1a                    1x
Demikian tutorial Android Studio kali ini tentang,Tutorial Android Studio: Mengenal Activity Dan Contoh Penggunaannya,semoga bermanfaat,terima kasih.