23 Mar

Memakai Custom Font pada TextView Android

Untuk menggunakan CustomFont di dalam TextView dibutuhkan trik khusus. Karena secara default, TextView hanya bisa menggunakan jenis Font yang sudah ada di dalam sistem Android.

Custom Font artinya kita menggunakan font pilihan kita sendiri berupa font dengan format TTF. Berikut langkah-langkahnya:

1.  Buat project Android baru (standard).

2. Buka res/layout/activity_main.xml tambahkan 2 komponen TextView menjadi seperti ini:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/DefaultFontText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:text="Ini dengan font biasa" />
    <TextView
        android:id="@+id/CustomFontText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:text="Ini dengan Custom Font">
        </TextView>
</LinearLayout>

3. Cari font yang disukai. Bisa dari google font atau dari website lain. Yang penting formatnya .TTF

4. Copy font tersebut ke assets/fonts/. kalau di dalam folder assets belum ada folder fonts, maka bisa dibuat dengan klik kanan assets > new > directory. Contohnya saya memasukkan font FontKeren.TTF

5. Buka Main.java (Main Activity Default) dan edit kode programnya  menjadi sbb:

public class Main extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/FontKeren.TTF");
        TextView tv = (TextView) findViewById(R.id.CustomFontText);
        tv.setTypeface(tf);
    }
}

6. Kemudian jalankan program dan lihat hasilnya :)

 

Kesimpulan

Untuk mengeset font custom ke dalam TextView kita bisa menggunakan cara melakukan load TypeFace dari folder assets. Kemudian kita dari komponen textview kita panggil setTypeface untuk mengeset font yang diinginkan.

25 Sep

Deteksi Multitouch di Android

Kita perlu melakukan deteksi multitouch untuk keperluan khusus, misalnya saja kita ingin membuat alat musik digital di Android. Berikut ulasan javaclopedia tentang Multitouch di Android:
1. Kita Buat kelas Extends View. Kita sebut saja MultitouchView

public class MultitouchView extends View {
        public MultitouchView(Context context) {
                super(context);
        } 
}

2. Di dalamnya perlu kita masukkan 2 konstruktur sbb:

        public MultitouchView(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);
 
        }
 
        public MultitouchView(Context context, AttributeSet attrs) {
                super(context, attrs);
 
        }

3. Masuk ke main.xml (res/layout/main/xml) untuk mengatur layoutnya:

<?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" >
 
<com.helloandroid.multitouchexample.MultitouchView
        android:id="@+id/touchView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
 
</LinearLayout>

4. Buat activity sebagai main class:

public class Main extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
        }
}

5. Tambahkan method berikut di kelas MultitouchView:

@Override
        public boolean onTouchEvent(MotionEvent event) {
                super.onTouchEvent(event);
 
               
                int action = event.getAction() & MotionEvent.ACTION_MASK;
       
                switch (action) {
                case MotionEvent.ACTION_DOWN: {
                        Log.d("MultitouchExample","Action Down");
                        break;
                }
                case MotionEvent.ACTION_MOVE: {
                        Log.d("MultitouchExample","Action Move");
                        break;
                }
 
                case MotionEvent.ACTION_POINTER_DOWN: {
                        Log.d("MultitouchExample","Pointer Down");
                break;
                }
                case MotionEvent.ACTION_POINTER_UP: {
                        Log.d("MultitouchExample","Pointer up");
 
                        break;
                }
                case MotionEvent.ACTION_UP: {
                        Log.d("Multitouch", "Action up");
               
                        break;
                }
                }
 
                return true;
        }

Berikut event-event yang dapat ditangani:
ACTION_DOWN dipanggil ketika jari user pertama menyentuh screen.
ACTION_MOVE dipanggil ketika user menggeser jarinya di screen.
ACTION_POINTER_DOWN dipanggil ketika jari user kedua kalinya menyentuk screen (multitouch).

13 Sep

Background ListView becomes black when scrolling

When we scroll ListView, the background become black when scrolling.
The solution is we can set on ListView XML:

android:cacheColorHint="#00000000"

Ketika kita melakukan scroll pada listview, akan muncul background warna hitam.
Caranya adalah dengan menambahkan atribute pada list view di definisi XML sbb:
android:cacheColorHint=”#00000000″

Semoga bermanfaat

12 Aug

Android Passing Parameter Antar Activity

Halo, mumpung ada waktu nulis lagi. Saya akan menulis tutorial sederhana tapi bermanfaat.

Kadang kita membuat program yang menggunakan beberapa activity. sebagai contoh kita punya dua activity dengan activity pertama kita berupa List Daftar Negara. Sedangkan Activity kedua adalah tampilan tentang apa yang dipilih pada Actity pertama. Bagaimana Activity kedua mengetahui apa yang dipilih pada activity pertama?

Berikut contoh kode programnya:

Intent myIntent = new Intent(this, ActivtyKedua.class);
myIntent.putExtra("pilihanNegara","Indonesia");
startActivity(myIntent);

Kode program di atas merupakan kode program yang berguna untuk melakukan pemindahan activity disertai dengan passing parameter. Parameter yang dipassing adalah “pilihanNegara” dengan isi “Indonesia”. Bagaimana cara mengambilnya dari Activity kedua?

Intent myIntent= getIntent();
String pilihanNegera = intent.getStringExtra("pilihanNegara")

Kode program di atas merupakan kode program pada Activity kedua, di mana parameter pilihanNegara diambil dari getStringExtra(). Ingat, getStringExtra() digunakan karena tipe datanya adlah String. Kalau integer kita dapat mengambilnya dengan cara getIntExtra().

Semoga jelas dan dapat bermanfaat :)

18 May

Android CheckBox Selection Control

CheckBox chk=(CheckBox)findViewById(R.id.Chk);
chk.setOnCheckedChangeListener(new OnCheckedChangeListener() {

  public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
      TextView txt=(TextView)findViewById(R.id.txt);
      if (arg1)
        txt.setText("checked");
      else
        txt.setText("Unchecked");    
      }         
   }
);