android qq分享自动弹出,Android自定义PopupWindow仿点击弹出分享功能

本文实例自定义PopupWindow,点击弹出PopupWindow,背景变暗,仿点击弹出分享功能,供大家参考,具体内容如下

注:参照大神代码写的

15059024991.jpg?2017124114913

package com.duanlian.popupwindowdemo;

import android.app.Activity;

import android.content.Context;

import android.graphics.drawable.ColorDrawable;

import android.view.LayoutInflater;

import android.view.View;

import android.view.WindowManager;

import android.widget.LinearLayout;

import android.widget.PopupWindow;

import android.widget.TextView;

/**

* 自定义popupWindow

*/

public class RewritePopwindow extends PopupWindow {

private View mView;

public RewritePopwindow(Activity context,View.OnClickListener itemsOnClick) {

super(context);

initView(context,itemsOnClick);

}

private void initView(final Activity context,View.OnClickListener itemsOnClick) {

LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

mView = mInflater.inflate(R.layout.popupwindow_share,null);

LinearLayout weiXFriend = (LinearLayout) mView.findViewById(R.id.weixinghaoyou);

LinearLayout friendster = (LinearLayout) mView.findViewById(R.id.pengyouquan);

LinearLayout QQFriend = (LinearLayout) mView.findViewById(R.id.qqhaoyou);

LinearLayout QQZone = (LinearLayout) mView.findViewById(R.id.qqkongjian);

TextView canaleTv = (TextView) mView.findViewById(R.id.share_cancle);

canaleTv.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//销毁弹出框

dismiss();

backgroundAlpha(context,1f);

}

});

//设置按钮监听

weiXFriend.setOnClickListener(itemsOnClick);

friendster.setOnClickListener(itemsOnClick);

QQFriend.setOnClickListener(itemsOnClick);

QQZone.setOnClickListener(itemsOnClick);

//设置SelectPicPopupWindow的View

this.setContentView(mView);

//设置SelectPicPopupWindow弹出窗体的宽

this.setWidth(WindowManager.LayoutParams.FILL_PARENT);

//设置SelectPicPopupWindow弹出窗体的高

this.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);

//设置SelectPicPopupWindow弹出窗体可点击

this.setFocusable(true);

//设置PopupWindow可触摸

this.setTouchable(true);

//设置非PopupWindow区域是否可触摸

// this.setOutsideTouchable(false);

//设置SelectPicPopupWindow弹出窗体动画效果

// this.setAnimationStyle(R.style.select_anim);

//实例化一个ColorDrawable颜色为半透明

ColorDrawable dw = new ColorDrawable(0x00000000);

//设置SelectPicPopupWindow弹出窗体的背景

this.setBackgroundDrawable(dw);

backgroundAlpha(context,0.5f);//0.0-1.0

this.setOnDismissListener(new OnDismissListener() {

@Override

public void onDismiss() {

// TODO Auto-generated method stub

backgroundAlpha(context,1f);

}

});

}

/**

* 设置添加屏幕的背景透明度

*

* @param bgAlpha

*/

public void backgroundAlpha(Activity context,float bgAlpha) {

WindowManager.LayoutParams lp = context.getWindow().getAttributes();

lp.alpha = bgAlpha;

context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

context.getWindow().setAttributes(lp);

}

}

MainActivity中用

package com.duanlian.popupwindowdemo;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.Gravity;

import android.view.View;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private RewritePopwindow mPopwindow;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.share).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

mPopwindow = new RewritePopwindow(MainActivity.this,itemsOnClick);

mPopwindow.showAtLocation(view,Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL,0);

}

});

}

//为弹出窗口实现监听类

private View.OnClickListener itemsOnClick = new View.OnClickListener() {

public void onClick(View v) {

mPopwindow.dismiss();

mPopwindow.backgroundAlpha(MainActivity.this,1f);

switch (v.getId()) {

case R.id.weixinghaoyou:

Toast.makeText(MainActivity.this,"微信好友",Toast.LENGTH_SHORT).show();

break;

case R.id.pengyouquan:

Toast.makeText(MainActivity.this,"朋友圈",Toast.LENGTH_SHORT).show();

break;

case R.id.qqhaoyou:

Toast.makeText(MainActivity.this,"QQ好友",Toast.LENGTH_SHORT).show();

break;

case R.id.qqkongjian:

Toast.makeText(MainActivity.this,"QQ空间",Toast.LENGTH_SHORT).show();

break;

default:

break;

}

}

};

}

布局文件--popupWindow布局

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:layout_width="match_parent"

android:alpha="0.2"

android:layout_height="match_parent"

android:layout_above="@+id/ll"/>

android:id="@+id/ll"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:orientation="vertical">

android:paddingBottom="30dp"

android:id="@+id/share_ll"

android:paddingTop="20dp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:paddingRight="20dp"

android:background="#ebebeb"

android:paddingLeft="20dp"

android:orientation="horizontal"

>

android:id="@+id/weixinghaoyou"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:orientation="vertical"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:background="@mipmap/icon_weixin_fenxiang"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:onClick="share"

android:layout_gravity="center"

android:layout_marginTop="10dp"

android:text="微信好友"

android:textColor="#000000"/>

android:id="@+id/pengyouquan"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:orientation="vertical"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:background="@mipmap/icon_quan"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:onClick="share"

android:layout_gravity="center"

android:layout_marginTop="10dp"

android:text="朋友圈"

android:textColor="#000000"/>

android:id="@+id/qqhaoyou"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:orientation="vertical"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:background="@mipmap/icon_qq_fenxiang"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:onClick="share"

android:layout_gravity="center"

android:layout_marginTop="10dp"

android:text="QQ"

android:textColor="#000000"/>

android:id="@+id/qqkongjian"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:orientation="vertical"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:background="@mipmap/icon_kongjian"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:onClick="share"

android:layout_gravity="center"

android:layout_marginTop="10dp"

android:text="QQ空间"

android:textColor="#000000"/>

android:id="@+id/line"

android:layout_width="match_parent"

android:layout_height="0.5dp"

android:layout_below="@+id/share_ll"

android:background="#000000"/>

android:id="@+id/share_cancle"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:textSize="20sp"

android:layout_below="@+id/line"

android:background="#f5f3f3"

android:paddingBottom="20dp"

android:paddingTop="20dp"

android:text="取消"/>

mainActivity的布局文件

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.duanlian.popupwindowdemo.MainActivity">

android:id="@+id/share"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="点击弹出"/>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值