Thursday, 20 December 2012

DropDown PopUp Window

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: