how to Draw ring Around Current Location mark and how to Drag The mark on touch event 
<p>this is my code.plz try to resolve my problem
Thanks</p>

<pre><code>package gmap.com;

import java.io.IOException;
import java.util.List;
import java.util.Locale;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

public class GmapActivity extends MapActivity {
LocationManager locman;
EditText edittxt;
float radius;

 MapView mapView;
 MapController mc;
 GeoPoint p;
 Drawable defaultMarker; 

 double latPoint,lngPoint,lat,lng;
 private Button btnSearch;
 LocationListener locationListener;
 ItemizedOverlay&lt;OverlayItem&gt; overlay;

 private String bestProvider; 
 private Handler handler = new Handler();

 public static final int zoomCheckingDelay = 500; // in ms

 private Runnable zoomChecker = new Runnable()
 {
     public void run()
     {
         //checkMapIcons();

         handler.removeCallbacks(zoomChecker); // remove the old callback
         handler.postDelayed(zoomChecker, zoomCheckingDelay); // register a new one
     }
 };


class MapOverlay extends com.google.android.maps.Overlay{


    public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)

{
super.draw(canvas, mapView, shadow);

//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(
getResources(), R.drawable.pin);
Paint mPaint = new Paint();
//mPaint.setDither(true);
mPaint.setColor(0xFFFFFF00);
mPaint.setStyle(Paint.Style.STROKE);

canvas.drawBitmap(bmp, screenPts.x, screenPts.y-38, null);
canvas.drawCircle(screenPts.x, screenPts.y-38, radius, mPaint);
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
//---when user lifts his finger---
if (event.getAction() == 1) {

GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6() / 1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
try {
List&lt;Address&gt; addresses = geoCoder.getFromLocation(
p.getLatitudeE6()  / 1E6,
p.getLongitudeE6() / 1E6, 1);
String add = "";
if (addresses.size() &gt; 0){
for (int i=0; i&lt;addresses.get(0).getMaxAddressLineIndex();i++)
add += addresses.get(0).getAddressLine(i) + "\n";
}
Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();
}
catch (IOException e) {
e.printStackTrace();
}
return true;
}
else
return false;
}
}

@Override
protected boolean isRouteDisplayed() {
return false;
}

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnSearch=(Button)findViewById(R.id.btnSearch);
edittxt=(EditText)findViewById(R.id.lblLocationInfo1);
btnSearch.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {
        String st=edittxt.getText().toString();

     radius=Float.valueOf(st.trim()).floatValue();
     Log.d("a.........","b.........."+radius);

    }
});


 mapView = (MapView) findViewById(R.id.mapView); 
 mc = mapView.getController();
 //MapController mc = map.getController();









mapView.setBuiltInZoomControls(true);





LocationListener listener=new MyLocationListener();
locman = (LocationManager)getBaseContext().getSystemService(Context.LOCATION_SERVICE);
locman.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, listener);


Location loc = locman.getLastKnownLocation("gps");
if(loc != null) {
    latPoint =locman.getLastKnownLocation("gps").getLatitude
();
    lngPoint = locman.getLastKnownLocation("gps").getLongitude
();


    // Create a point of it
    GeoPoint point = new GeoPoint((int) (latPoint * 1E6), (int)
(lngPoint * 1E6));
    // Animate the map to the location
    mc.animateTo(point);
    mc.setZoom(11);

    //mapView.setSatellite(true);
    mapView.invalidate();


 } else {

         latPoint = 111.1111111; // means location is Null
 }

Criteria criteria = new Criteria();
bestProvider = locman.getBestProvider(criteria, false);
//printProvider(bestProvider);     
 mc = mapView.getController();

p = new GeoPoint(
 (int) (latPoint * 1E6),
 (int) (lngPoint * 1E6));
 mc.animateTo(p);
 mc.setZoom(15);
 mc.setCenter(p);
 mapView.invalidate();
 MapOverlay mapOverlay = new MapOverlay();
 List&lt;Overlay&gt; listOfOverlays = mapView.getOverlays();
 listOfOverlays.clear();
 listOfOverlays.add(mapOverlay);

 mapView.invalidate();


 } 

protected void onResume() {
super.onResume();

handler.postDelayed(zoomChecker, zoomCheckingDelay);

}
/** Stop the updates when Activity is paused */
@Override
protected void onPause() {
super.onPause();
handler.removeCallbacks(zoomChecker);
}

public void onLocationChanged(Location location) {
//printLocation(location);
}
private class MyLocationListener implements LocationListener {
public void onLocationChanged(Location arg0) {

            }

@Override
public void onProviderDisabled(String arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String arg0) {
    // TODO Auto-generated method stub

}


public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
    // TODO Auto-generated method stub

}
 }
}
</code></pre>
