Android PopWindow与GridView练习

练习:1.首先完成如图所示效果

            2.使用PopWindow与GridView完成

            要求点击分享显示如图所示内容,点击取消分享退出。

           并且要求进入退出动画效果为渐入渐出,时间为1秒,且要设置透明效果。


布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#8ee1b4"
    tools:context="com.example.administrator.jreduch05.GridView_Activity">

    <GridView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/gv"
        android:numColumns="4"
        >
    </GridView>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="取消分享"
        android:id="@+id/bt1"
        android:layout_below="@+id/gv"
        />
</RelativeLayout>

布局效果:


布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/iv"
    android:src="@mipmap/ic_launcher"
    android:scaleType="centerCrop"
    />
<TextView
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:id="@+id/tv"
    android:gravity="center"
    android:text="测试"
    />
</LinearLayout>

效果:


代码:

package com.example.administrator.jreduch05;

import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class PopWindow_Activity extends AppCompatActivity {
    private Button bt;
    private PopupWindow pw;
    private View popView;
    private GridView gv;
    private Button bt1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pop_window_);
        bt=(Button) findViewById(R.id.share);

        popView=getLayoutInflater().inflate(R.layout.activity_grid_view_,null);
        bt1=(Button) popView.findViewById(R.id.bt1);
        gv=(GridView)popView.findViewById(R.id.gv);

        List list =new ArrayList();

        HashMap map=new HashMap();
        map.put("img",R.mipmap.renrou);
        map.put("name","微信");
        list.add(map);

        map=new HashMap();
        map.put("img",R.mipmap.jietu1);
        map.put("name", "QQ");
        list.add(map);

        map=new HashMap();
        map.put("img",R.mipmap.dahai);
        map.put("name", "大海");
        list.add(map);

        map=new HashMap();
        map.put("img",R.mipmap.dianzan);
        map.put("name", "点赞");
        list.add(map);

        SimpleAdapter sa=new SimpleAdapter(this,list,R.layout.gridlayout,
                new String[]{"img","name"},
                new int[]{R.id.iv,R.id.tv}
                );
        gv.setAdapter(sa);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                pw = getPopWindow(popView);
            }
        });
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 pw.dismiss();
                    bt1.setVisibility(View.VISIBLE);
                //设置View可见
            }
        });
    }
    public PopupWindow getPopWindow(View view){
        PopupWindow popupWindow=new PopupWindow(view,
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.WRAP_CONTENT,true
        );
        popupWindow.setOutsideTouchable(true);
        popupWindow.setAnimationStyle(R.style.popStyle);
        //设置背景透明度
        WindowManager.LayoutParams ll=
                getWindow().getAttributes();
        ll.alpha=0.6f;
        getWindow().setAttributes(ll);

        popupWindow.setBackgroundDrawable(new ColorDrawable());
        popupWindow.showAtLocation(bt, Gravity.BOTTOM, 0, 0);

        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
                WindowManager.LayoutParams ll=
                        getWindow().getAttributes();
                ll.alpha=1f;
                getWindow().setAttributes(ll);
                //设置View可见
            }
        });
        return popupWindow;
    }
}

完成效果:

1.                                                                               2.

时间: 2023-01-05

Android PopWindow与GridView练习的相关文章

android viewpager 和gridview怎么用addHeaderView连到一起滑动?

问题描述 android viewpager 和gridview怎么用addHeaderView连到一起滑动? 在纵向滑动的时候 横向滑动部分怎么跟着纵向部分一起滑动 ?求答 解决方案 横向滑动组件也能纵向滑动吗?

图片- Android ListView嵌套GridView点击事件的分发!!!!

问题描述 Android ListView嵌套GridView点击事件的分发!!!! 现在我在实现一个类似朋友圈的功能,布局需要用到ListView嵌套GridView.我也知道这样用不是太好,但这样能够实现需求所以就这样写了.如果哪位有更好的替换的方法,还请赐教.例如:我现在每行显示三张图片,但现在只有一张图片,所以就会有两张图片的位置会空出来.我为了要实现点击图片还能够看大图设置了GridView的onitemclick事件.问题来了,当我点击空白部分的时候,结果还是触发了GridView的

Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现

关注finddreams:http://blog.csdn.net/finddreams/article/details/43486527       今天我们来模仿一下支付宝钱包首页中带有分割线的GridView,俗称九宫格.先上图,是你想要的效果么?如果是请继续往下看.                                                                     我们都知道ListView设置分割线是非常容易的,设置ListView的分割线颜色和宽度

Android学习之——GridView

背景知识     GridView在Android开发中和ListView一样经常被使用.如我们经常使用的快图浏览,里面就有将图片的布局改为网格(即GridView)的选项.还有约X神器--陌陌的搜索界也是用了GridView.                               定义    GridView is a ViewGroup that displays items in a two-dimensional, scrollable grid. The grid items a

布局-Android中的GridView中的Item之间空白太大

问题描述 Android中的GridView中的Item之间空白太大 adapter中的getView方法如下 public View getView(int position View convertView ViewGroup parent) { ImageView imageView=new ImageView(context); imageView.setImageBitmap(list.get(position).getBitmap()); imageView.setLayoutPar

Android 利用ViewPager+GridView实现首页导航栏布局分页效果_Android

最近我尝试使用ViewPager+GridView实现的,看起来一切正常,废话不多说,具体代码如下: 如图是效果图   首先分析下思路 1.首先是怎么布局:整体是一个ViewPager将GridView作为一个View添加到ViewPager的adapter中,下方是圆点 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas

Android实现取消GridView中Item选中时默认的背景色_Android

本文实例讲述了Android实现取消GridView中Item选中时默认的背景色.分享给大家供大家参考,具体如下: 1.  取消GridView中Item选中时默认的背景色,当使用GridView时候点击item项时候,会有一个android默认的背景色,取消它的方法是: game_gridview.setSelector(new ColorDrawable(Color.TRANSPARENT)); //取消GridView中Item选中时默认的背景色 2.  GridView第一个item不显

Android中使用gridview如何让图片在上文字在下,跟进入home页一样

问题描述 最近老大让做项目,我是初学者,不知道咋搞,求教各位高手!!! 解决方案 你说的是这样子么?如果是这样子的话就看源码吧:gridview.xml<?xml version="1.0" encoding="utf-8"?><GridView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/gridview&quo

Android中在GridView网格视图上实现item拖拽交换的方法_Android

GridView基础新建一个HelloGridView的工程 修改main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width=&qu