On click on Button or Text or image you want to a Popup window with Drop Down feel.then follow the steps:
1.main.xml res folder
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/android_wallpaper">
<Button
android:id="@+id/show_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Popup"
android:layout_alignParentRight="true" />
</RelativeLayout>
2.popup.xml res folder
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/popup"
android:background="@drawable/popupwindow_background"
android:layout_width="80dp"
android:layout_height="200dp">
<Button
android:background="@drawable/write"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:id="@+id/ButtonPopup"
android:onClick="onButtonInPopup"/>
<Button
android:background="@drawable/search"
android:layout_below="@id/ButtonPopup"
android:layout_width="60dp"
android:id="@+id/button2"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"/>
</RelativeLayout>
</RelativeLayout>
3.PopupActivity .java in src folder
package com.android.prashant;
import android.app.Activity;
import android.content.Context;
import android.graphics.Point;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Display;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.Toast;
public class PopupActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
Point p;
static int buttonstatus=0;
Button btn_show,button1;
PopupWindow popup;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_show = (Button) findViewById(R.id.show_popup);
btn_show.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v==btn_show){
if(buttonstatus==0){
// btn_show.setClickable(true);
showPopup(this);
}else if(buttonstatus==1){
popup.dismiss();
buttonstatus=0;
}
}
}
private void showPopup(final Activity context) {
// TODO Auto-generated method stub
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display display1 = getWindowManager().getDefaultDisplay();
int Twidth = display1.getWidth();
int Theight = display1.getHeight();
int popupWidth = 125;
int popupHeight =300;
LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.popup);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.popup, viewGroup);
popup = new PopupWindow(context);
popup.setContentView(layout);
buttonstatus=1;
popup.setWidth(popupWidth);
popup.setHeight(popupHeight);
popup.setFocusable(false);
int OFFSET_X =(Twidth-40);
int OFFSET_Y =Theight-(Theight-125);
Toast.makeText(getApplicationContext(), "Hi"+popup.isFocusable(), 150).show();
popup.setBackgroundDrawable(new BitmapDrawable());
popup.showAsDropDown(layout,OFFSET_X,OFFSET_Y);
Button close = (Button) layout.findViewById(R.id.ButtonPopup);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popup.setFocusable(true);
buttonstatus=0;
popup.dismiss();
Toast.makeText(getApplicationContext(), "Hi"+popup.isFocusable(), 150).show();
}
});
Button btn2 = (Button) layout.findViewById(R.id.button2);
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popup.setFocusable(true);
buttonstatus=0;
popup.dismiss();
}
});
}
}
4.res/drawable/ images:
Output:
1.main.xml res folder
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/android_wallpaper">
<Button
android:id="@+id/show_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Popup"
android:layout_alignParentRight="true" />
</RelativeLayout>
2.popup.xml res folder
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/popup"
android:background="@drawable/popupwindow_background"
android:layout_width="80dp"
android:layout_height="200dp">
<Button
android:background="@drawable/write"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:id="@+id/ButtonPopup"
android:onClick="onButtonInPopup"/>
<Button
android:background="@drawable/search"
android:layout_below="@id/ButtonPopup"
android:layout_width="60dp"
android:id="@+id/button2"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"/>
</RelativeLayout>
</RelativeLayout>
3.PopupActivity .java in src folder
package com.android.prashant;
import android.app.Activity;
import android.content.Context;
import android.graphics.Point;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Display;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.Toast;
public class PopupActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
Point p;
static int buttonstatus=0;
Button btn_show,button1;
PopupWindow popup;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_show = (Button) findViewById(R.id.show_popup);
btn_show.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v==btn_show){
if(buttonstatus==0){
// btn_show.setClickable(true);
showPopup(this);
}else if(buttonstatus==1){
popup.dismiss();
buttonstatus=0;
}
}
}
private void showPopup(final Activity context) {
// TODO Auto-generated method stub
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display display1 = getWindowManager().getDefaultDisplay();
int Twidth = display1.getWidth();
int Theight = display1.getHeight();
int popupWidth = 125;
int popupHeight =300;
LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.popup);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.popup, viewGroup);
popup = new PopupWindow(context);
popup.setContentView(layout);
buttonstatus=1;
popup.setWidth(popupWidth);
popup.setHeight(popupHeight);
popup.setFocusable(false);
int OFFSET_X =(Twidth-40);
int OFFSET_Y =Theight-(Theight-125);
Toast.makeText(getApplicationContext(), "Hi"+popup.isFocusable(), 150).show();
popup.setBackgroundDrawable(new BitmapDrawable());
popup.showAsDropDown(layout,OFFSET_X,OFFSET_Y);
Button close = (Button) layout.findViewById(R.id.ButtonPopup);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popup.setFocusable(true);
buttonstatus=0;
popup.dismiss();
Toast.makeText(getApplicationContext(), "Hi"+popup.isFocusable(), 150).show();
}
});
Button btn2 = (Button) layout.findViewById(R.id.button2);
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popup.setFocusable(true);
buttonstatus=0;
popup.dismiss();
}
});
}
}
4.res/drawable/ images:
Output:












