For your pink halo-ing, the issue is exactly what you described: anti-aliasing. If you have Photoshop, just create the hexagon with two layers, one with all pink (0xFF00FF) and another with the hexagon. Make sure when you create the hexagon all feathering and anti-aliasing settings are set to zero for all the tools you use, and all brushes are set to 100% hardness. Save as a PNG.

For best results, stick to the pencil and paint bucket tools.

Problem in blitting a clean, crisp sprite
I am working on this application for Android it is called Button Chaser. I have to crate a pause and resume mechanism . I created the pause mechanism and it works just fine, but I am having trouble creating the Resume one. how can I make the resume mechanism? This is my code:     

package com.example.buttonchaser;

import java.util.Random;
import java.util.Timer;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.*;
import android.widget.*;
import android.graphics.Point;
import android.view.View.OnClickListener;


public class ButtonChaserActivity extends ActionBarActivity implements OnClickListener{
private Button btn;

private TextView lblScore;
private Timer timer;
private int x, y, w, h, score;
ButtonChaserTimerTask task;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_button_chaser);
    //Inflate UI
    btn = (Button)findViewById(R.id.btn);
    lblScore = (TextView)findViewById(R.id.lblScore);

    btn.setOnClickListener(this);
    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    w = size.x - btn.getWidth() - 48;
    h = size.y - btn.getHeight() - 48;
    timer = new Timer();
    task = new ButtonChaserTimerTask(this);
    timer.schedule(task, 0, 1500);

}



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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    switch(item.getItemId()){
        case R.id.mnuEasy:
            newGame();
            return true;
        case R.id.mnuMed:
            medGame();
            return true;
        case R.id.mnuHard:
            hardGame();
            return true;
        case R.id.mnuNew:
        newGame();
        return true;
    case R.id.mnuQuit:
        quit();
        return true;

    default:
        return super.onOptionsItemSelected(item);
    }
}

public void newGame(){
    score = 0;
    lblScore.setText("Score: " + score);
    timer = new Timer();
    task = new ButtonChaserTimerTask(this);
    timer.schedule(task, 0, 1500);
}
public void medGame(){
    score = 0;
    lblScore.setText("Score: " + score);
    timer = new Timer();
    task = new ButtonChaserTimerTask(this);
    timer.schedule(task, 0, 500);
}
public void hardGame(){
    score = 0;
    lblScore.setText("Score: " + score);
    timer = new Timer();
    task = new ButtonChaserTimerTask(this);
    timer.schedule(task, 0, 250);
}

public void quit(){
    timer.cancel();
    finish();
}

public void moveButton(){
    Random generator = new Random();
    generator.setSeed(System.currentTimeMillis());
    float f = generator.nextFloat();
    x = (int)(f*w)%w;
    f = generator.nextFloat();
    y = (int)(f*h)%h;
    btn.setX(x);
    btn.setY(y);
}

public void pauseOnClick(View view) {
    Button pause = (Button) view;
    ((Button)view).setText("Resume");
        timer.cancel();}

        //((Button)view).setText("Pause");
        //moveButton();





@Override
public void onClick(View v) {
    score +=1;
    lblScore.setText("Score: " + score);

}
}

