今天使用popuwindow進行簡單的第三方分享。以前用自帶的圖案,現在要求自己寫自定義的界面,於是用popouwindow,發現裏面的坑還是挺多的
mpopuwindow = new PopupWindow();
final View mView = LayoutInflater.from(this).inflate(R.layout.popuwindows_share, null);
RadioButton mQQ = (RadioButton) mView.findViewById(R.id.rb_qq);
RadioButton mWeiXi = (RadioButton) mView.findViewById(R.id.rb_weixin);
RadioButton mWeiBo = (RadioButton) mView.findViewById(R.id.rb_weibo);
Button mbt_share_popu = (Button) mView.findViewById(R.id.bt_share_popu);
mpopuwindow.setContentView(mView);
mpopuwindow.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
mpopuwindow.setHeight(RelativeLayout.LayoutParams.WRAP_CONTENT);
mpopuwindow.setAnimationStyle(R.style.anim_menu_bottombar);
mpopuwindow.setFocusable(true);//獲取焦點
final ColorDrawable dw = new ColorDrawable(0xb0000000);
mpopuwindow.setBackgroundDrawable(dw);
mpopuwindow.showAtLocation(mView, Gravity.BOTTOM, 0, 0);
mpopuwindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
//檢測popuwindwo消失
@Override
public void onDismiss() {
dismiss();
}
});
mView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
dismiss();
return false;
}
});
這個是簡單的佈局頁面
<?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"
android:layout_gravity="bottom">
<TextView
android:id="@+id/tv_share"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/rg_group"
android:background="@color/white"
android:gravity="center"
android:padding="10dp"
android:text="分享給朋友"
android:textColor="@color/black"
android:textSize="22sp" />
<RadioGroup
android:id="@+id/rg_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/view"
android:background="@color/white"
android:orientation="horizontal"
android:padding="10dp">
<RadioButton
android:id="@+id/rb_weibo"
style="@style/TabBottomStyle"
android:drawableTop="@mipmap/weibo"
android:text="微博" />
<RadioButton
android:id="@+id/rb_weixin"
style="@style/TabBottomStyle"
android:drawableTop="@mipmap/weixin"
android:text="微信" />
<RadioButton
android:id="@+id/rb_qq"
style="@style/TabBottomStyle"
android:drawableTop="@mipmap/qq"
android:text="QQ" />
</RadioGroup>
<View
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="3px"
android:layout_above="@+id/bt_share_popu"
android:background="@color/home_line" />
<Button
android:id="@+id/bt_share_popu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:gravity="center"
android:padding="15dip"
android:text="取消" />
</RelativeLayout>
這個是style裏面的屬性
<style name="TabBottomStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="android:layout_weight">1</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:button">@null</item>
<item name="android:gravity">center</item>
<item name="android:textColor">@android:color/darker_gray</item>
<item name="android:drawablePadding">5dp</item>
<item name="android:padding">5dp</item>
<item name="android:textSize">14sp</item>
</style>