Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Apr 4, 2015


Assalamualaikum wr.wb sob...kali ini saya akan share cara membuat Drawing di android
langsung saja ikuti step by step nya:

1. Buat projet baru dengan nama "DrawingFun" atau terserah teman-teman


2. Ganti source code "activity_main.xml" dengan source code dibawah ini


 

 

  

  

  

  
 

 

 

 

 

  

  

   

   

   

   

   

   
  

  

  

   

   

   

   

   

   
  
 


3.create xml baru beri nama "brush_chooser.xml" copas sourcode dibawah ini


 

 

 

4.buka "MainActivity.java" copy paste source code dibawah ini
package com.example.drawingfun;

import java.util.UUID;

import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Toast;

/**
 * This is demo code to accompany the Mobiletuts+ tutorial series:
 * - Android SDK: Create a Drawing App
 * 
 * Setia budi
 *
 */
public class MainActivity extends Activity implements OnClickListener {

 //custom drawing view
 private DrawingView drawView;
 //buttons
 private ImageButton currPaint, drawBtn, eraseBtn, newBtn, saveBtn;
 //sizes
 private float smallBrush, mediumBrush, largeBrush;

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

  //get drawing view
  drawView = (DrawingView)findViewById(R.id.drawing);

  //get the palette and first color button
  LinearLayout paintLayout = (LinearLayout)findViewById(R.id.paint_colors);
  currPaint = (ImageButton)paintLayout.getChildAt(0);
  currPaint.setImageDrawable(getResources().getDrawable(R.drawable.paint_pressed));

  //sizes from dimensions
  smallBrush = getResources().getInteger(R.integer.small_size);
  mediumBrush = getResources().getInteger(R.integer.medium_size);
  largeBrush = getResources().getInteger(R.integer.large_size);

  //draw button
  drawBtn = (ImageButton)findViewById(R.id.draw_btn);
  drawBtn.setOnClickListener(this);

  //set initial size
  drawView.setBrushSize(mediumBrush);

  //erase button
  eraseBtn = (ImageButton)findViewById(R.id.erase_btn);
  eraseBtn.setOnClickListener(this);

  //new button
  newBtn = (ImageButton)findViewById(R.id.new_btn);
  newBtn.setOnClickListener(this);

  //save button
  saveBtn = (ImageButton)findViewById(R.id.save_btn);
  saveBtn.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;
 }

 //user clicked paint
 public void paintClicked(View view){
  //use chosen color

  //set erase false
  drawView.setErase(false);
  drawView.setBrushSize(drawView.getLastBrushSize());

  if(view!=currPaint){
   ImageButton imgView = (ImageButton)view;
   String color = view.getTag().toString();
   drawView.setColor(color);
   //update ui
   imgView.setImageDrawable(getResources().getDrawable(R.drawable.paint_pressed));
   currPaint.setImageDrawable(getResources().getDrawable(R.drawable.paint));
   currPaint=(ImageButton)view;
  }
 }

 @Override
 public void onClick(View view){

  if(view.getId()==R.id.draw_btn){
   //draw button clicked
   final Dialog brushDialog = new Dialog(this);
   brushDialog.setTitle("Brush size:");
   brushDialog.setContentView(R.layout.brush_chooser);
   //listen for clicks on size buttons
   ImageButton smallBtn = (ImageButton)brushDialog.findViewById(R.id.small_brush);
   smallBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
     drawView.setErase(false);
     drawView.setBrushSize(smallBrush);
     drawView.setLastBrushSize(smallBrush);
     brushDialog.dismiss();
    }
   });
   ImageButton mediumBtn = (ImageButton)brushDialog.findViewById(R.id.medium_brush);
   mediumBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
     drawView.setErase(false);
     drawView.setBrushSize(mediumBrush);
     drawView.setLastBrushSize(mediumBrush);
     brushDialog.dismiss();
    }
   });
   ImageButton largeBtn = (ImageButton)brushDialog.findViewById(R.id.large_brush);
   largeBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
     drawView.setErase(false);
     drawView.setBrushSize(largeBrush);
     drawView.setLastBrushSize(largeBrush);
     brushDialog.dismiss();
    }
   });
   //show and wait for user interaction
   brushDialog.show();
  }
  else if(view.getId()==R.id.erase_btn){
   //switch to erase - choose size
   final Dialog brushDialog = new Dialog(this);
   brushDialog.setTitle("Eraser size:");
   brushDialog.setContentView(R.layout.brush_chooser);
   //size buttons
   ImageButton smallBtn = (ImageButton)brushDialog.findViewById(R.id.small_brush);
   smallBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
     drawView.setErase(true);
     drawView.setBrushSize(smallBrush);
     brushDialog.dismiss();
    }
   });
   ImageButton mediumBtn = (ImageButton)brushDialog.findViewById(R.id.medium_brush);
   mediumBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
     drawView.setErase(true);
     drawView.setBrushSize(mediumBrush);
     brushDialog.dismiss();
    }
   });
   ImageButton largeBtn = (ImageButton)brushDialog.findViewById(R.id.large_brush);
   largeBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
     drawView.setErase(true);
     drawView.setBrushSize(largeBrush);
     brushDialog.dismiss();
    }
   });
   brushDialog.show();
  }
  else if(view.getId()==R.id.new_btn){
   //new button
   AlertDialog.Builder newDialog = new AlertDialog.Builder(this);
   newDialog.setTitle("New drawing");
   newDialog.setMessage("Start new drawing (you will lose the current drawing)?");
   newDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int which){
     drawView.startNew();
     dialog.dismiss();
    }
   });
   newDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int which){
     dialog.cancel();
    }
   });
   newDialog.show();
  }
  else if(view.getId()==R.id.save_btn){
   //save drawing
   AlertDialog.Builder saveDialog = new AlertDialog.Builder(this);
   saveDialog.setTitle("Simpan Gambar");
   saveDialog.setMessage("Simpan Gambar di Gallery?");
   saveDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int which){
     //save drawing
     drawView.setDrawingCacheEnabled(true);
     //attempt to save
     String imgSaved = MediaStore.Images.Media.insertImage(
       getContentResolver(), drawView.getDrawingCache(),
       UUID.randomUUID().toString()+".png", "drawing");
     //feedback
     if(imgSaved!=null){
      Toast savedToast = Toast.makeText(getApplicationContext(), 
        "Gambar Telah Disimpan di Gallery!", Toast.LENGTH_SHORT);
      savedToast.show();
     }
     else{
      Toast unsavedToast = Toast.makeText(getApplicationContext(), 
        "Oops! Gambar Tidak Tersimpan.", Toast.LENGTH_SHORT);
      unsavedToast.show();
     }
     drawView.destroyDrawingCache();
    }
   });
   saveDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int which){
     dialog.cancel();
    }
   });
   saveDialog.show();
  }
 }

}
5. create java baru beri nama "DrawingView" kemudian copas source code dibawah ini
package com.example.drawingfun;


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;

/**
 * This is demo code to accompany the Mobiletuts+ tutorial series:
 * - Android SDK: Create a Drawing App
 * 
 * setia budi

 */
public class DrawingView extends View {

 //drawing path
 private Path drawPath;
 //drawing and canvas paint
 private Paint drawPaint, canvasPaint;
 //initial color
 private int paintColor = 0xFFFFFFFF;
 //canvas
 private Canvas drawCanvas;
 //canvas bitmap
 private Bitmap canvasBitmap;
 //brush sizes
 private float brushSize, lastBrushSize;
 //erase flag
 private boolean erase=false;

 public DrawingView(Context context, AttributeSet attrs){
  super(context, attrs);
  setupDrawing();
 }

 //setup drawing
 private void setupDrawing(){

  //prepare for drawing and setup paint stroke properties
  brushSize = getResources().getInteger(R.integer.medium_size);
  lastBrushSize = brushSize;
  drawPath = new Path();
  drawPaint = new Paint();
  drawPaint.setColor(paintColor);
  drawPaint.setAntiAlias(true);
  drawPaint.setStrokeWidth(brushSize);
  drawPaint.setStyle(Paint.Style.STROKE);
  drawPaint.setStrokeJoin(Paint.Join.ROUND);
  drawPaint.setStrokeCap(Paint.Cap.ROUND);
  canvasPaint = new Paint(Paint.DITHER_FLAG);
 }

 //size assigned to view
 @Override
 protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  super.onSizeChanged(w, h, oldw, oldh);
  canvasBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
  drawCanvas = new Canvas(canvasBitmap);
 }

 //draw the view - will be called after touch event
 @Override
 protected void onDraw(Canvas canvas) {
  canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
  canvas.drawPath(drawPath, drawPaint);
 }

 //register user touches as drawing action
 @Override
 public boolean onTouchEvent(MotionEvent event) {
  float touchX = event.getX();
  float touchY = event.getY();
  //respond to down, move and up events
  switch (event.getAction()) {
  case MotionEvent.ACTION_DOWN:
   drawPath.moveTo(touchX, touchY);
   break;
  case MotionEvent.ACTION_MOVE:
   drawPath.lineTo(touchX, touchY);
   break;
  case MotionEvent.ACTION_UP:
   drawPath.lineTo(touchX, touchY);
   drawCanvas.drawPath(drawPath, drawPaint);
   drawPath.reset();
   break;
  default:
   return false;
  }
  //redraw
  invalidate();
  return true;

 }

 //update color
 public void setColor(String newColor){
  invalidate();
  paintColor = Color.parseColor(newColor);
  drawPaint.setColor(paintColor);
 }

 //set brush size
 public void setBrushSize(float newSize){
  float pixelAmount = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
    newSize, getResources().getDisplayMetrics());
  brushSize=pixelAmount;
  drawPaint.setStrokeWidth(brushSize);
 }

 //get and set last brush size
 public void setLastBrushSize(float lastSize){
  lastBrushSize=lastSize;
 }
 public float getLastBrushSize(){
  return lastBrushSize;
 }

 //set erase true or false
 public void setErase(boolean isErase){
  erase=isErase;
  if(erase) drawPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
  else drawPaint.setXfermode(null);
 }

 //start new drawing
 public void startNew(){
  drawCanvas.drawColor(0, PorterDuff.Mode.CLEAR);
  invalidate();
 }
}



hasil Screenshot :



semoga bermanfaat dan tunggu aplikasi lainnya sobat blogger :)

cara membuat aplikasi menggambar (DrawingApp) di android

Feb 24, 2015

Siang sobat... pada kesempatan kali ini saya akan share bagainama cara menampilkan vote pada Alertdialog exit di android,langsung saja ikuti step by stepnya:

1. Create project baru beri nama "vote" atau terserah teman-teman
2. Masuk ke "MainActivity.java" pastekan source code dibawah ini 

package com.example.rating;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.widget.RatingBar;

public class MainActivity extends Activity {

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

 @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;
 }
 public void onBackPressed() {
    exit();//Pergi ke method exit    
   }
   private void exit() 
   {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
     final RatingBar rating = new RatingBar(this);
     rating.setMax(5);
     
   builder.setIcon(android.R.drawable.btn_star_big_on);
   builder.setTitle("Vote sebelum keluar!!!");
   builder.setView(rating);
     builder.setMessage("Yakin ingin Keluar")
    .setCancelable(false)
    
    //jika pilih ya
    .setPositiveButton("Ya", new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
      // audioBackground.stop();    
      finish();
     }
    })
    
    //jika pilih tidak
    .setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
      dialog.cancel();
     }
    }).show();

      
 }

}


3. save dan running
screenshot :
semoga bermanfaat :)

Cara menampilkan vote pada alertdialog exit di android

Feb 22, 2015


Berikut ini adalah lanjutan dari Tutorial membuat game hangman di android Part 1
Setelah temen-temen mengikuti step by stepnya pada Tutorial membuat game hangman di android Part 1 kemudian ikuti step by step pada Part 2 ini

1. masuk ke "MainActivity.java" ganti dengan source code dibawah ini
package com.example.hangman;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
//import android.view.Menu;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.RatingBar;

/**
 * - Android SDK: Create a Hangman Game
 * 
 * Setia budi - July 2014
 */

public class MainActivity extends Activity  implements OnClickListener {

 MediaPlayer audioBackground;
 Button help;
 Button rate;
 private AlertDialog helpAlert;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  Button playBtn = (Button)findViewById(R.id.playBtn);
  playBtn.setOnClickListener(this);
  
  audioBackground = MediaPlayer.create(this, R.raw.seram);
  audioBackground.setLooping(true);
        audioBackground.setVolume(1,1);
        //Memulai audio
        audioBackground.start();
        
        help=(Button) findViewById(R.id.help1);
        help.setOnClickListener(new View.OnClickListener() {
         
        @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   showHelp();
  }
 });
        
        rate=(Button) findViewById(R.id.rate1);
        rate.setOnClickListener(new View.OnClickListener() {
         
        @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   showRate();
  }
 });
 }
        public void showHelp(){
      AlertDialog.Builder helpBuild = new AlertDialog.Builder(this);
      helpBuild.setTitle("Help");
      helpBuild.setMessage("Menebak kata dengan memilih huruf.\n\n"
    + "Anda hanya memiliki 7 kesempatan jika anda salah \n\n"
    + "maka satu persatu gambar akan keluar mulai dari kepala sampai kaki,\n\n"
    + " maka permainan akan berakhir!");
helpBuild.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { helpAlert.dismiss(); }}); helpAlert = helpBuild.create(); helpBuild.show(); } public void showRate(){ AlertDialog.Builder rateBuild = new AlertDialog.Builder(this); rateBuild.setTitle("Rate"); final RatingBar rating = new RatingBar(this); rating.setMax(6); rateBuild.setIcon(android.R.drawable.btn_star_big_on); rateBuild.setView(rating); //t1.setTitle(String.valueOf(rating)); rateBuild.setMessage("Please Rate Us"); rateBuild.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { helpAlert.dismiss(); }}); helpAlert = rateBuild.create(); rateBuild.show(); } public void onBackPressed() { exit();//Pergi ke method exit } private void exit() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Exit !!!"); builder.setMessage("Yakin ingin Keluar") .setCancelable(false) //jika pilih ya .setPositiveButton("Ya", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { audioBackground.stop(); finish(); } }) //jika pilih tidak .setNegativeButton("Tidak", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }).show(); } @Override public void onClick(View view) { //handle clicks if(view.getId()==R.id.playBtn){ Intent playIntent = new Intent(this, GameActivity.class); this.startActivity(playIntent); { audioBackground.setVolume(0, 0); } } } }

2.create class baru beri nama "GameActivity.java" kemudian pastekan source code dibawah
package com.example.hangman;

import java.util.Random;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
//import android.widget.RatingBar;
import android.widget.TextView;

/**
 * - Android SDK: Create a Hangman Game
 * 
 * Setia budi - July 2014
 */
public class GameActivity extends Activity {
 
 MediaPlayer audioBackground;

 //the words
 private String[] words;
 //random for word selection
 private Random rand;
 //store the current word
 private String currWord;
 //the layout holding the answer
 private LinearLayout wordLayout;
 //text views for each letter in the answer
 private TextView[] charViews;
 //letter button grid
 private GridView letters;
 //letter button adapter
 private LetterAdapter ltrAdapt;
 //body part images
 private ImageView[] bodyParts;
 //total parts
 private int numParts=6;
 //current part
 private int currPart;
 //num chars in word
 private int numChars;
 //num correct so far
 private int numCorr;
 //help
 private AlertDialog helpAlert;

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

  Resources res = getResources();
  words = res.getStringArray(R.array.words);

  rand = new Random();
  currWord="";

  wordLayout = (LinearLayout)findViewById(R.id.word);

  letters = (GridView)findViewById(R.id.letters);
  
  bodyParts = new ImageView[numParts];
  bodyParts[0] = (ImageView)findViewById(R.id.head);
  bodyParts[1] = (ImageView)findViewById(R.id.body);
  bodyParts[2] = (ImageView)findViewById(R.id.arm1);
  bodyParts[3] = (ImageView)findViewById(R.id.arm2);
  bodyParts[4] = (ImageView)findViewById(R.id.leg1);
  bodyParts[5] = (ImageView)findViewById(R.id.leg2);
  
  playGame();
  
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
  case android.R.id.home:
   NavUtils.navigateUpFromSameTask(this);
   return true;
  case R.id.action_help:
   showHelp();
   return true;
  }
  return super.onOptionsItemSelected(item);
 }
//play a new game
 private void playGame(){

  
  String newWord = words[rand.nextInt(words.length)]; 
  while(newWord.equals(currWord)) newWord = words[rand.nextInt(words.length)];
  currWord = newWord;
 
  charViews = new TextView[currWord.length()];

  wordLayout.removeAllViews();
 
  for(int c=0; c<currWord.length(); c++){
   charViews[c] = new TextView(this);
  
   charViews[c].setText(""+currWord.charAt(c));
   
   charViews[c].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
     LayoutParams.WRAP_CONTENT));
   charViews[c].setGravity(Gravity.CENTER);
   charViews[c].setTextColor(Color.WHITE);
   charViews[c].setBackgroundResource(R.drawable.letter_bg);
   
   wordLayout.addView(charViews[c]);
  }

  
  ltrAdapt=new LetterAdapter(this);
  letters.setAdapter(ltrAdapt);

  currPart=0;
  numChars=currWord.length();
  numCorr=0;

  for(int p=0; p<numParts; p++){
   bodyParts[p].setVisibility(View.INVISIBLE);
  }
 }

 //letter pressed method
 public void letterPressed(View view){
  //find out which letter was pressed
  String ltr=((TextView)view).getText().toString();
  char letterChar = ltr.charAt(0);
  view.setEnabled(false);
  view.setBackgroundResource(R.drawable.letter_down);
 
  boolean correct=false;
  for(int k=0; k<currWord.length(); k++){ 
   if(currWord.charAt(k)==letterChar){
    correct=true;
    numCorr++;
    charViews[k].setTextColor(Color.BLUE);
   }
  }
  if(correct){
   if(numCorr==numChars){
    //disable all buttons
    disableBtns();
    AlertDialog.Builder winBuild = new AlertDialog.Builder(this);
    winBuild.setTitle("YOU WIN");
    winBuild.setMessage("Jawaban : "+currWord);
    winBuild.setPositiveButton("Main Lagi", 
      new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
      GameActivity.this.playGame();
     }});
    winBuild.setNegativeButton("Keluar", 
      new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
      GameActivity.this.finish();
     }});
    winBuild.setIcon(R.drawable.sukses);
    winBuild.show();
   }
  }
  //check if user still has guesses
  else if(currPart<numParts){
   bodyParts[currPart].setVisibility(View.VISIBLE);
   currPart++;
  }
  else{
   //user has lost
   disableBtns();
   AlertDialog.Builder loseBuild = new AlertDialog.Builder(this);
   loseBuild.setTitle("YOU LOSE");
   loseBuild.setMessage("Jawaban : "+currWord);
   loseBuild.setPositiveButton("Main Lagi", 
     new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {
     GameActivity.this.playGame();
    }});
   loseBuild.setNegativeButton("Keluar", 
     new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {
     GameActivity.this.finish();
    }});
   loseBuild.setIcon(R.drawable.fail);
   loseBuild.show();
  }
 }

 //disable letter buttons
 public void disableBtns(){ 
  int numLetters = letters.getChildCount();
  for(int l=0; l<numLetters; l++){
   letters.getChildAt(l).setEnabled(false);
  }
 }
 //show help information
 public void showHelp(){
  AlertDialog.Builder helpBuild = new AlertDialog.Builder(this);
  helpBuild.setTitle("Help");
  helpBuild.setMessage("Menebak kata dengan memilih huruf.\n\n"
    + "Anda hanya memiliki 7 kesempatan jika anda salah \n\n"
    + "maka satu persatu gambar akan keluar mulai dari kepala sampai kaki,\n\n"
    + " maka permainan akan berakhir!");
  helpBuild.setPositiveButton("OK", 
    new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int id) {
    helpAlert.dismiss();
   }});
  helpAlert = helpBuild.create();
  helpBuild.show();
 }
}
3.create class baru lagi beri nama "LatterAdapter.java" kemudian pastekan source code dibawah
package com.example.hangman;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;

/**
 * - Android SDK: Create a Hangman Game
 * 
 * setia budi - July 2014
 */

public class LetterAdapter extends BaseAdapter {

 //store letters
 private String[] letters;
 //inflater for button layout
 private LayoutInflater letterInf;

 public LetterAdapter(Context c) {
  //instantiate alphabet array
  letters=new String[26];
  for(int a=0; a<letters.length; a++){
   letters[a]=""+(char)(a+'A');
  }
  //specify layout to inflate
  letterInf = LayoutInflater.from(c);
 }

 @Override
 public int getCount() {
  return letters.length;
 }

 @Override
 public Object getItem(int arg0) {
  return null;
 }

 @Override
 public long getItemId(int arg0) {
  return 0;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  //create a button for the letter at this position in the alphabet
  Button letterBtn;
  if (convertView == null) {  
   //inflate the button layout
   letterBtn = (Button)letterInf.inflate(R.layout.letter, parent, false);
  } else {
   letterBtn = (Button) convertView;
  }
  //set the text to this letter
  letterBtn.setText(letters[position]);
  return letterBtn;
 }

}


4.kemudian masuk ke "AndroidManifest" ganti source code tersebut dengan source code dibawah ini


    

    
        
            
                

                
            
        
        
    



5. Running project tersebut jangan lupa save all terlebih dahulu
screenshot :







semoga bermanfaat :)

NOTE :

Jika sobat blogger ingin full project hangman ini bisa komen dibawah ini sertakan email kalian.Terima kasih :)

Tutorial membuat game hangman dengan Eclipse Part 2 #android

Assalamualaikum wr.wb sobat...kali ini saya akan share bagaimana cara membuat game di android,disini saya akan membuat game hangman, temen-temen pasti tau apa itu hangman kalau  ada dari temen-temen yang belum tau bisa googling sendiri : D hehe
langsung saja ikuti step by step nya:

1. Buat projet baru dengan nama "Hangman" atau terserah teman-teman
2. Download gambar disini,dan masukkan gambar/semua file tersebut ke dalam folder "drawable-hdpi"

2. Ganti source code "activity_main.xml" dengan source code dibawah ini


    


3. kemudia create xml baru dengan nama "activity_game.xml" pastekan source code dibawah ini


    

    

        

        

        

        

        

        

        

    

    

    
    

    

    

4. ganti source code "main.xml" dengn source code dibawah


 





5. Download folder raw disini,masukkan folder raw tersebut ke folder res

6. Download folder values disini,ganti folder values yang ada di folder res tersebut

6.create xml baru beri nama "latter.xml" pastekan source code dibawah

setelah semua step by step diatas sudah temen-temen lalukan sekarang klik disini untuk melanjutkan Tutorial membuat game hangman di android Part 2



NOTE :

Jika sobat blogger ingin full project hangman ini bisa komen dibawah ini sertakan email kalian.Terima kasih :)

Tutorial membuat game hangman dengan Eclipse Part 1 #android

Assalamualaikum wr.wb sobat blogger...kali ini saya akan share bagaimana cara membuat AlertDialog exit pada android,langsung saja ikuti step by step nya:

1. masuk ke "
MainActivity.java" tambahkan source code dibawah ini


public void onBackPressed() {
    exit();   
   }
   private void exit() 
   {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setTitle("Exit !!!");
  
     builder.setMessage("Yakin ingin Keluar")
    .setCancelable(false)
    
    //jika pilih ya
    .setPositiveButton("Ya", new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
        
      finish();
     }
    })
    
    //jika pilih tidak
    .setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
      dialog.cancel();
     }
    }).show();

   }

2. kemudian running dan lihat hasilnya
screenshot: 

semoga bermanfaat :) 
download cotoh project disini

Cara membuat AlertDialog exit pada android

Feb 21, 2015

Kali ini saya akan share bagaimana cara membuat kompas di android,seperti basa disini saya menggunakan eclipse ADT (Android Developer Tools) temen-temen bisa langsung saja ikuti step by stepnya:

1. Buat projet baru dengan nama "CompassApp" atau terserah teman-teman

2. Ganti source code "activity_main.xml" dengan source code dibawah ini


    
    



3. Buka "MainActivity.java" copy paste source code dibawah ini


package com.example.compassapp;

import android.app.Activity;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.view.animation.Animation;

import android.view.animation.RotateAnimation;

import android.widget.ImageView;

import android.widget.TextView;



public class MainActivity extends Activity implements SensorEventListener {



 // define the display assembly compass picture

 private ImageView image;



 // record the compass picture angle turned

 private float currentDegree = 0f;



 // device sensor manager

 private SensorManager mSensorManager;



 TextView tvHeading;



 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);



  // our compass image

  image = (ImageView) findViewById(R.id.imageViewCompass);



  // TextView that will tell the user what degree is he heading

  tvHeading = (TextView) findViewById(R.id.tvHeading);



  // initialize your android device sensor capabilities

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

 }



 @Override

 protected void onResume() {

  super.onResume();

  

  // for the system's orientation sensor registered listeners

  mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ALL),

    SensorManager.SENSOR_DELAY_GAME);

 }



 @Override

 protected void onPause() {

  super.onPause();

  

  // to stop the listener and save battery

  mSensorManager.unregisterListener(this);

 }



 @Override

 public void onSensorChanged(SensorEvent event) {



  // get the angle around the z-axis rotated

  float degree = Math.round(event.values[0]);



  tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");



  // create a rotation animation (reverse turn degree degrees)

  RotateAnimation ra = new RotateAnimation(

    currentDegree, 

    -degree,

    Animation.RELATIVE_TO_SELF, 0.5f, 

    Animation.RELATIVE_TO_SELF,

    0.5f);



  // how long the animation will take place

  ra.setDuration(210);



  // set the animation after the end of the reservation status

  ra.setFillAfter(true);



  // Start the animation

  image.startAnimation(ra);

  currentDegree = -degree;



 }



 @Override

 public void onAccuracyChanged(Sensor sensor, int accuracy) {

  // not in use

 }

}


4. create java baru,beri nama "Compass.java" kemudian copy paste source code dibawah ini
package com.example.compassapp;


import android.app.Activity;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.view.animation.Animation;

import android.view.animation.RotateAnimation;

import android.widget.ImageView;

import android.widget.TextView;



public class Compass extends Activity implements SensorEventListener {



 // define the display assembly compass picture

 private ImageView image;



 // record the compass picture angle turned

 private float currentDegree = 0f;



 // device sensor manager

 private SensorManager mSensorManager;



 TextView tvHeading;



 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);



  // our compass image

  image = (ImageView) findViewById(R.id.imageViewCompass);



  // TextView that will tell the user what degree is he heading

  tvHeading = (TextView) findViewById(R.id.tvHeading);



  // initialize your android device sensor capabilities

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

 }



 @Override

 protected void onResume() {

  super.onResume();

  

  // for the system's orientation sensor registered listeners

  mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ALL),

    SensorManager.SENSOR_DELAY_GAME);

 }



 @Override

 protected void onPause() {

  super.onPause();

  

  // to stop the listener and save battery

  mSensorManager.unregisterListener(this);

 }



 @Override

 public void onSensorChanged(SensorEvent event) {



  // get the angle around the z-axis rotated

  float degree = Math.round(event.values[0]);



  tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");



  // create a rotation animation (reverse turn degree degrees)

  RotateAnimation ra = new RotateAnimation(

    currentDegree, 

    -degree,

    Animation.RELATIVE_TO_SELF, 0.5f, 

    Animation.RELATIVE_TO_SELF,

    0.5f);



  // how long the animation will take place

  ra.setDuration(210);



  // set the animation after the end of the reservation status

  ra.setFillAfter(true);



  // Start the animation

  image.startAnimation(ra);

  currentDegree = -degree;



 }



 @Override

 public void onAccuracyChanged(Sensor sensor, int accuracy) {

  // not in use

 }



}

5. runing project tersebut
hasil Screenshot :

atau temen-temen bisa download full project disini

Tutorial cara membuat kompas di android

Feb 20, 2015

Assalamualaikum wr.wb sobat blogger...kali ini saya akan share bagaimana cara membuat button rate pada android,langsung saja ikuti step by step nya:

1. Buat projet baru dengan nama "rate" atau terserah teman-teman
2. Ganti source code "activity_main.xml" dengan source code dibawah ini




    

3. Buka "MainActivity.java" copy paste source code dibawah ini
package com.example.rate;



import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.RatingBar;



public class MainActivity extends Activity {

 Button rate;

 private AlertDialog helpAlert;

 

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  

  rate=(Button) findViewById(R.id.rate);

        rate.setOnClickListener(new View.OnClickListener() {

         

        @Override

  public void onClick(View v) {

   // TODO Auto-generated method stub

   showRate();

  }

 });

 }

 public void showRate(){

  AlertDialog.Builder rateBuild = new AlertDialog.Builder(this);

  rateBuild.setTitle("Rate");

  final RatingBar rating = new RatingBar(this);

     rating.setMax(5); 

     rateBuild.setIcon(android.R.drawable.btn_star_big_on);

     rateBuild.setView(rating);

     rateBuild.setMessage("Please Rate Us");

  rateBuild.setPositiveButton("OK",

    new DialogInterface.OnClickListener() {

   public void onClick(DialogInterface dialog, int id) {

    helpAlert.dismiss();

   }});

  helpAlert = rateBuild.create();

  rateBuild.show();

 }

 @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;

 }

}

4. kemudian running project tersebut jangan lupa untuk save all terlebih dahulu sebelum di running.
screenshot:

silahkan dicoba. download disini


Tutorial cara membuat button rate pada android

Feb 17, 2015

Penyebab aplikasi force close

Penyebab aplikasi force close bisa bermacam-macam, seperti :
  • data app yang corrupt (temporary data, cache, game data, dsb)
  • koneksi internet yang tiba-tiba putus (untuk aplikasi yang butuh sambungan internet, seperti aplikasi chatting, streaming, dan sebagainya)
  • aplikasi memang buggy, atau masih beta :)
  • aplikasi tersebut kalian dapatkan dari luar Play Store (aplikasi bajakan)
  • smartphone kalian tidak compatible dengan aplikasi tersebut, tapi dipaksa menjalankan
  • versi Android kalian yang terlalu tua (biasanya Android versi Froyo 2.2 atau Gingerbread 2.3)
  • versi Android yang tidak kompatibel untuk aplikasi tersebut
  • hardware smartphone kalian rusak (rusak di sensor, kamera, atau koneksi internet)
  • smartphone kalian di-root atau heavy modified (Android yang di-root bisa menyebabkan ketidakstabilan sistem)
  • kalian kurang amal atau faktor FF hahaha :D
Ketika kita sudah mengetahui sebab-sebabnya, maka inilah kiranya langkah-langkah untuk mengatasi aplikasi yang tiba-tiba force close sendiri.

Mengatasi aplikasi yang suka force close sendiri

  1. Koneksikan Gadget ke Internet / Wi-fi / Paket Data
    Jaman sekarang hampir semua aplikasi membutuhkan akses ke internet. Karena itu sebelum mencoba langkah lainnya, ceklah koneksi internet pada gadget Android kalian. Untuk menyalakan internet secara manual bisa masuk ke Android Settings > Wireless & Network > Mobile Networks > Enable data access. Atau simply koneksikan ke wi-fi yang ada di sekitar kalian. Selain internet, ada kalanya kalian juga perlu menyalakan Location Service, karena beberapa aplikasi (seperti Foursquare) akan tidak berfungsi dengan baik apabila Location Services di Android kalian dimatikan.
  2. Manual Force Stop
    Salah satu cara yang bisa dilakukan adalah dengan me-restart aplikasi yang force close. Caranya dengan melakukan force stop manual, masuk ke Settings > Application Manager, kemudian pilih aplikasi yang sesuai, dan klik tombol “Force Stop”. Setelah itu nyalakan aplikasi seperti biasa. Selain me-restart aplikasi, kalian juga bisa mencoba me-restart gadget untuk mengatasi masalah force close.
  3. Clear Data Aplikasi
    Cara lainnya adalah dengan melakukan “Clear Data” dan “Clear Cache” aplikasi yang bermasalah, karena salah satu penyebab aplikasi force close adalah adanya data yang korup. Untuk melakukan Clear Data, caranya seperti di atas, masuk ke Android Settings > Application Manager, kemudian pilih aplikasi yang sesuai dan klik “Clear Data”. Saat melakukan langkah ini data-data di aplikasi akan terhapus semua, dan biasanya kalian akan disuruh untuk login ulang saat menyalakan aplikasi tersebut. Alternatif untuk Clear Data atau Cache lainnya kalian bisa menggunakan aplikasi third party seperti “Clean Master” yang akan membersihkan smartphone kalian dari data-data yang tidak penting.
  4. Reinstall atau Install Ulang Aplikasi
    Kalau langkah-langkah di atas tidak berhasil, maka kita bisa melakukan install ulang aplikasi tersebut. Hal ini sangat disarankan apalagi jika aplikasi kalian adalah aplikasi bajakan. Caranya, masuk Settings > Application Manager, dan klik Uninstall. Kemudian untuk menginstall nya lagi bisa melalui Play Store dan download aplikasi baru dari sana.
  5. Update Aplikasi
    Ada kalanya sebelum menginstall aplikasi dari Play Store, kalian harus mencermati keterangan dan status dari aplikasi yang akan kalian instal. Karena biasanya aplikasi yang masih beta atau masih baru, belum stabil dan sering tiba-tiba crash atau force close. Disarankan untuk secara rutin mengecek update untuk aplikasi-aplikasi yang bermasalah di gadget kalian. Caranya bisa masuk ke Play Store > My Apps. Namun kalian harus cermat juga saat menginstall update, karena ada juga update yang malah membuat aplikasi menjadi bermasalah. Ketika ada versi baru dari suatu aplikasi, ada baiknya kalian mengecek review atau komentar pengguna tentang update tersebut.
  6. Update Android OSSelain update aplikasi, kalian juga bisa mencoba untuk update Android OS terbaru yang tersedia bagi gadget kalian. Hal ini sangat disarankan untuk kalian yang masih menggunakan Android versi GingerBread (2.3) ke bawah. Apabila ada versi terbaru, langsung update Android OS kalian. Karena kebanyakan aplikasi yang beredar sekarang bisa bekerja dengan baik di minimal Android OS 4.0 (Ice Cream Sandwich). Untuk melakukan update, bisa masuk ke Android Settings > About Phone > System Updates.
  7. Switch dari ART ke Dalvik Runtime
    Untuk Android OS versi Kitkat ke atas disediakan runtime alternatif selain Dalvik, yaitu ART (Android RunTime). ART bisa mempercepat kinerja aplikasi dan OS, namun sayangnya belum semua aplikasi kompatibel atau bisa berjalan mulus di ART. Karena itu kalian bisa mengecek runtime yang digunakan pada gadget KitKat kalian, dan menggantinya ke Dalvik untuk kompatibilitas aplikasi yang lebih luas. Caranya, aktifkan Developer Options dengan klik berulang-ulang “build number” di halaman About Phone. Setelah itu masuk ke Developer Options dan pilih Select Runtime > Dalvik.
  8. Factory Reset Smartphone kalian
    Ini adalah langkah yang agak ekstrim karena melakukan factory reset akan menghapus semua data di gadget kalian. Namun apabila terjadi kasus force close yang parah dan terjadi di lebih dari satu aplikasi yang ada di gadget kalian, maka opsi ini bisa dipertimbangkan. Factory reset akan mengubah status gadget kalian menjadi sama seperti saat pertama kali kalian membelinya, karena itu langkah ini akan menghapus semua data, data foto/video, data aplikasi, dan data update Android OS yang pernah kalian install. Caranya kalian bisa masuk ke Android Settings > Backup & Reset > Factory Data Reset. Jangan lupa untuk mem-backup data penting kalian sebelum mencoba langkah ini.
  9. Upgrade Smartphone kalian
    Ini adalah langkah final dan paling ampuh untuk mengatasi aplikasi yang force close :D. yaitu membeli smartphone baru yang lebih canggih. Apabila gadget kalian saat ini hanya mempunyai RAM 512 MB dan free storage space kurang dari 100 MB. Maka dengan membeli smartphone baru dengan spesifikasi RAM 2 GB, Quad-Core processor, storage 32 GB, dan Android versi terbaru dijamin akan mengatasi masalah aplikasi kalian yang sering force close. :)
  10. Laporkan bug force close ke developer. Seperti gambar screenshot di atas, pada saat aplikasi Force Close ada tombol “Report” di dialog, yang berfungsi untuk melaporkan error tersebut ke developer. Tentunya cara ini tidak akan mengatasi masalah force close di aplikasi kalian secara instan. Kalian harus menunggu sampai developer aplikasi tersebut membaca laporan kalian, memperbaiki error/bug di aplikasinya, dan merilis update terbaru untuk aplikasi tersebut. Tapi setidaknya kita sudah membantu berkontribusi dengan melaporkan error ke developer aplikasi tersebut.
Itulah cara-cara yang bisa dilakukan untuk mengatasi force close pada aplikasi Android.semoga bermanfaat ;)

Cara mengatasi force close pada aplikasi Android

 
Setia Budi © 2015 - Designed by Templateism