Archive for Oktober 2014
MEMANFAATKAN INTENT UNTUK AKSES ACTION CALL dan ACTION DIAL Pada ANDROID
Aplikasi Android biasanya tidak hanya terdiri
dari satu Activity saja, mungkin saja terdiri dari dua
atau beberapa Activity yang saling mendukung. Jika Anda
seorang pengembang aplikasi Android, tentunya perpindahan dari satu Activity ke Activity yang lain harus anda atur. Dalam
aplikasi Android, perpindahan antar Activity dapat menggunakan Intent.
Dalam artikel ini intent akan dimanfaaatkan dalam
meng-akses activity panggilan dan dial pada handpone,
Langsung saja jalankan program eclipse Android
Devloper Tool, Pilih file-New-Android
Application Project
Activity yang digunakan untuk membuat layout pada
aplikasi ini menggunakan .xml untuk
activity_main.xml
Langkah pertama dengan membuka dan memasukan kode pada
activity_main.xml
di folder res-layout.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.16" >
<Button
android:id="@+id/back"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Back" />
<TextView
android:id="@+id/l"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/hasilteks"
android:layout_below="@+id/hasilteks"
android:layout_marginTop="14dp"
android:text="" />
<TextView
android:id="@+id/hasilteks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="38dp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="25dp"
android:text="Hasil Converter dari : " />
<TextView
android:id="@+id/teksdollar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/hasilteks"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/textView1"
android:text="" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/l"
android:text="CALL" />
<EditText
android:id="@+id/nohp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView2"
android:layout_marginTop="18dp"
android:ems="10" />
<Button
android:id="@+id/dial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/panggil"
android:layout_alignBottom="@+id/panggil"
android:layout_toRightOf="@+id/textView2"
android:text="DIAL" />
<Button
android:id="@+id/panggil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/nohp"
android:layout_marginTop="30dp"
android:layout_toRightOf="@+id/teksdollar"
android:text="PANGGIL" />
</RelativeLayout>
</LinearLayout>
Langkah ke dua membuat beberapa fungsi dengan cara membuka dan memasukan kode pada target.java di folder rsc
package com.example.convertermatauang;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class target extends Activity implements OnClickListener{
TextView hasil ;
TextView teksdollar ;
Button panggil;
Button dial;
EditText nohp;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tampilankedua);
Button move = (Button)findViewById(R.id.back);
move.setOnClickListener(this);
hasil = (TextView)findViewById(R.id.hasilteks);
teksdollar = (TextView)findViewById(R.id.teksdollar);
nohp = (EditText) findViewById(R.id.nohp);
panggil = (Button)findViewById(R.id.panggil);
dial = (Button)findViewById(R.id.dial);
// add PhoneStateListener for monitoring
MyPhoneListener phoneListener = new MyPhoneListener();
TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
// receive notifications of telephony state changes
telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
Intent callingintent = getIntent();
String dollar = callingintent.getStringExtra("dollar");
String rupiah = callingintent.getStringExtra("hasilconvert");
//int magicnumber = callingintent.getIntExtra("magicvalue", -1);
teksdollar.setText(teksdollar.getText()+""+dollar);
hasil.setText(hasil.getText()+""+rupiah);
//labeltext.setText(""+magicnumber);
panggil.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
// set the data
//menjalankan aksi panggilan menggunakan intent
String uri = "tel:"+nohp.getText().toString();
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(uri));
startActivity(callIntent);
}catch(Exception e) {
Toast.makeText(getApplicationContext(),"Your call has failed...",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
dial.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
//menjalankan aksi dial menggunakan intent
String uri = "tel:"+nohp.getText().toString();
Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse(uri));
startActivity(dialIntent);
}catch(Exception e) {
Toast.makeText(getApplicationContext(),"Your call has failed...",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent back = new Intent(this, MainActivity.class);
startActivity(back);
}
private class MyPhoneListener extends PhoneStateListener {
private boolean onCall = false;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
// phone ringing...
Toast.makeText(target.this, incomingNumber + " calls you",
Toast.LENGTH_LONG).show();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// one call exists that is dialing, active, or on hold
Toast.makeText(target.this, "on call...",
Toast.LENGTH_LONG).show();
//because user answers the incoming call
onCall = true;
break;
case TelephonyManager.CALL_STATE_IDLE:
// in initialization of the class and at the end of phone call
// detect flag from CALL_STATE_OFFHOOK
if (onCall == true) {
Toast.makeText(target.this, "restart app after call",
Toast.LENGTH_LONG).show();
// restart our application
Intent restart = getBaseContext().getPackageManager().
getLaunchIntentForPackage(getBaseContext().getPackageName());
restart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(restart);
onCall = false;
}
break;
default:
break;
}
}
}
}
Langkah yang terakhir tambahkan permition pada AndroidManifest.Xml agar mendapatkan ijin untuk melakukan panggilan
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.convertermatauang"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.convertermatauang.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="com.example.convertermatauang.target"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Jalankan aplikasinya project → Run as → Android Application.
Berikut screenshoot dari aplikasi ini
Sumber referensi :
IMAGE PROCCESING GRAYSCALE, BLACK AND WHITE, CONTRAS MENGGUNAKAN C#
Image prossesing adalah applikasi sederhana menggunakan bahasa pemrograman C#, Aplikasi ini berfungsi untuk memproses gambar diantaranya prosesnya grayscale, hitam putih, contras, coloring, bluring.
sourcecode aplikasi bisa di download disini
Mengenal Warna ,dan Pixel pada Gambar
Warna memiliki 4 nilai dalam pixel
1. Alpha
2. Red
3. Green
4. Blue
ARGB memiliki nilai antara 0-255
Konversi RGB Menjadi Grayscale
langkah pertama menentukan nilai RGB pada pixel.
Misalkan :
Red = 100
Green = 150
Blue = 200
ingat nilai ARGB antara 0-255
jadi dikalkulasikan rata-rata.
Average = (R+G+B)/3
Average = (100+150+200)/3
= 150
Langsung Saja pada contoh Source code dibawah ini
sourcecode aplikasi bisa di download disini
Mengenal Warna ,dan Pixel pada Gambar
Warna memiliki 4 nilai dalam pixel
1. Alpha
2. Red
3. Green
4. Blue
ARGB memiliki nilai antara 0-255
Konversi RGB Menjadi Grayscale
langkah pertama menentukan nilai RGB pada pixel.
Misalkan :
Red = 100
Green = 150
Blue = 200
ingat nilai ARGB antara 0-255
jadi dikalkulasikan rata-rata.
Average = (R+G+B)/3
Average = (100+150+200)/3
= 150
Langsung Saja pada contoh Source code dibawah ini
//dimensi gambar
int width = Bitmap.Width;
int height = Bitmap.Height;
//warna pixel
Color clr;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
//memberi nilai pada pixel
clr = Bitmap.GetPixel(x, y);
int r = clr.R;
int g = clr.G;
int b = clr.B;
//memberikan rata-rata
int avg = (r + g + b) / 3;
//memberikan nilai pada pixel yang baru
Bitmap.SetPixel(x, y, Color.FromArgb(avg, avg, avg));
}
}
// mengeload grayscale pada image
pictureBox1.Image = Bitmap;
MEMBUAT APLIKASI ANDROID KONVERSI MATA UANG MENGGUNAKAN ECLIPSE
Aplikasi Konversi mata
uang adalah aplikasi sederhana konversi mata uang rupiah
ke dollar Amerika.Namanya juga program sederhana jadi fungsinya cuman
konversi 1 mata uang saja, Namun
tidak menutup kemungkinan bila nantinya ditambah konversi ke mata uang negara lain.
Langsung saja jalankan program eclipse Android
Devloper Tool, Pilih file-New-Android
Application Project
Activity yang digunakan untuk membuat layout pada
aplikasi ini menggunakan .xml untuk
activity_main.xml
Langkah pertama dengan membuka dan memasukan kode pada activity_main.xml di folder res-layout.
//Untuk layout Menggunakan Relative Layout dan linear Layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RL33"
android:layout_width="fill_parent"
android:layout_height="fill_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=".MainActivity" >
<TextView
android:id="@+id/nama"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Rahman Anam [135150109111003]" />
//Membuat Tombol Convert
<Button
android:id="@+id/convert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/nama"
android:layout_alignParentBottom="true"
android:layout_marginBottom="182dp"
android:text="CONVERT" />
//Membuat Linear Layout
<LinearLayout321
android:id="@+id/LL34"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/nama"
android:orientation="vertical" >
<TextView
android:id="@+id/dollar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dollar" />
//membuat teks input pada nilai dollar
<EditText
android:id="@+id/editTextDollar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/rupiah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rupiah" />
//Membuat teks view untuk menampilkan hasil konversi dari dolar ke rupiah
<TextView
android:id="@+id/hasilrupiah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</LinearLayout>
</RelativeLayout>
Langkah ke dua membuka dan memasukan kode pada MainActivity.java
di folder rsc
package com.example.convertermatauang;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//Membuat fungsi untuk menerima atau mendengarkan perintah yang akan dilakukan
public class MainActivity extends Activity implements OnClickListener
{
//inisialisasi
EditText dollar;
TextView rupiah;
Button convert;
//memanggil semua aktifitas
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Memanggil Fungsi Button, EditText dan TetView dari .XML
dollar = (EditText)this.findViewById(R.id.editTextDollar);
rupiah = (TextView)this.findViewById(R.id.hasilrupiah);
convert = (Button)this.findViewById(R.id.convert);
convert.setOnClickListener(this);
}
@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;
}
//Menjalankan perintah ketika tombol convert di click
@Override
public void onClick(View v)
{
//menghitung nilai hasil conversi mata uang dengan default 1 dollar 12.000
double val = Double.parseDouble(dollar.getText().toString());
rupiah.setText(Double.toString(val*12200));
}
}
Berikut screenshoot dari aplikasi ini