ventanas studio emergentes bloquear android facebook design popup comments

studio - cómo crear un comentario de Facebook como pop-up en Android?



pop ups android virus (1)

puedes lograrlo a través de

Ventana emergente

Este es el procedimiento para llamar a la ventana emergente sobre la actividad o el fragmento. Facebook utilizando Rebound Library para increíbles animaciones swing. Pero usé archivos de animación xml normales para eso.

popup_layout.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/headerLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:orientation="horizontal" android:layout_alignParentTop="true" android:gravity="center"> <TextView android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Some One and 20 Others Like this" android:textColor="@color/black" android:textStyle="bold" android:layout_margin="5dp"/> </LinearLayout> <ListView android:id="@+id/commentsListView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/headerLayout" android:layout_above="@+id/comment_section" android:layout_marginBottom="0dp"/> <LinearLayout android:id="@+id/comment_section" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="50dp" android:layout_alignParentBottom="true" android:layout_marginBottom="5dp" android:orientation="horizontal" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxHeight="30dp" android:minHeight="20dp" android:layout_gravity="center" android:src="@mipmap/ic_launcher" /> <EditText android:id="@+id/writeComment" android:hint="Write a Comment" android:layout_width="match_parent" android:layout_height="match_parent" android:maxLines="2" android:focusable="true" android:layout_marginLeft="2dp" android:textSize="12sp" android:textColor="@color/black" android:background="#00000000"/> </LinearLayout> </RelativeLayout>

Animación emergente en style.xml

<!-- PopuP Enter Exit Animation --> <style name="PopupAnimation" parent="Widget.AppCompat.PopupWindow"> <item name="android:windowEnterAnimation">@anim/bottom_up</item> <item name="android:windowExitAnimation">@anim/bottom_down</item> </style>

Método Java para llamar a PopUpWindow

// call this method when required to show popup public void onShowPopup(View v){ LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); // inflate the custom popup layout inflatedView = layoutInflater.inflate(R.layout.popup_layout, null,false); // find the ListView in the popup layout ListView listView = (ListView)inflatedView.findViewById(R.id.commentsListView); LinearLayout headerView = (LinearLayout)inflatedView.findViewById(R.id.headerLayout); // get device size Display display = getWindowManager().getDefaultDisplay(); final Point size = new Point(); display.getSize(size); // mDeviceHeight = size.y; DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics(); int width = displayMetrics.widthPixels; int height = displayMetrics.heightPixels; // fill the data to the list items setSimpleList(listView); // set height depends on the device size popWindow = new PopupWindow(inflatedView, width,height-50, true ); // set a background drawable with rounders corners popWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.popup_bg)); popWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); popWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); popWindow.setAnimationStyle(R.style.PopupAnimation); // show the popup at bottom of the screen and set some margin at bottom ie, popWindow.showAtLocation(v, Gravity.BOTTOM, 0,100); }

Método para agregar la lista al diseño

void setSimpleList(ListView listView){ ArrayList<String> contactsList = new ArrayList<String>(); for (int index = 0; index < 10; index++) { contactsList.add("I am @ index " + index + " today " + Calendar.getInstance().getTime().toString()); } listView.setAdapter(new ArrayAdapter<String>(MainActivity.this, R.layout.popup_list_item, android.R.id.text1, contactsList)); }

Archivo de animación bottom_up.xml

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="75%p" android:toYDelta="0%p" android:fillAfter="true" android:duration="400"/> </set>

bottom_down.xml

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0%p" android:toYDelta="100%p" android:fillAfter="true" android:interpolator="@android:anim/linear_interpolator" android:duration="400" /> </set>

Me gustaría hacer una ventana emergente como Facebook, la aplicación de Android que se abre al presionar el botón de comentarios. Quiero diseñar el mismo tipo de ventana emergente para mi aplicación. ¿Alguien me puede decir cómo se puede construir o simplemente guiarme cuál es el requisito para diseñar ese tipo de cosas?

Gracias.