宅科技 - 科技,宅出新生活

搜索
热搜: 活动 交友 discuz
如果你还没有论坛的账号,赶快注册吧!
立即注册

合作站点账号登陆

快捷导航
查看: 28|回复: 0

[知识点] 安卓弹出窗口案例

[复制链接] [提交至百度]

76

主题

81

帖子

605

积分

顶级大神

Rank: 4

积分
605
发表于 2018-7-27 14:22:07 | 显示全部楼层 |阅读模式
扫码领红包
一.弹出窗体1.弹出窗体一定注意关闭2.弹出窗体要播放动画,必须有背景资源
  1. 1.弹出窗体一定注意关闭
  2. 2.弹出窗体要播放动画,必须有背景资源
复制代码


二.源代码MainActivity
  1. package com.itheima62.popupwindowdemo;

  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.graphics.Color;
  5. import android.graphics.drawable.ColorDrawable;
  6. import android.os.Bundle;
  7. import android.view.Gravity;
  8. import android.view.Menu;
  9. import android.view.View;
  10. import android.view.animation.AlphaAnimation;
  11. import android.view.animation.Animation;
  12. import android.view.animation.ScaleAnimation;
  13. import android.widget.PopupWindow;
  14. import android.widget.RelativeLayout.LayoutParams;

  15. public class MainActivity extends Activity {

  16.     private PopupWindow pw;
  17.     private AlphaAnimation aa;
  18.     private View contentView;
  19.     private ScaleAnimation sa;

  20.     @Override
  21.     protected void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_main);
  24.         initPopup();
  25.     }

  26.     /**
  27.      * 初始化弹出窗体
  28.      */
  29.     private void initPopup() {
  30.         contentView = View.inflate(getApplicationContext(), R.layout.popup, null);

  31.         pw = new PopupWindow(contentView , -2, -2);

  32.        sa = new ScaleAnimation(
  33.                1, 1,
  34.                0, 1,
  35.                Animation.RELATIVE_TO_SELF, 0.5f,
  36.                Animation.RELATIVE_TO_SELF, 0f );
  37.        sa.setDuration(1000);



  38.     }

  39.     /**
  40.      * 弹出窗体
  41.      * @param v
  42.      */
  43.     public void popupWindow(View v){
  44.         if ( pw != null && pw.isShowing()) {
  45.             pw.dismiss();
  46.         } else {
  47.             int[] location = new int[2];
  48.             /**
  49.              * 1,父组件
  50.              * 2,对齐方式
  51.              * 3, x坐标
  52.              * 4,y坐标
  53.              */
  54.             v.getLocationInWindow(location );
  55.             System.out.println("x:" + location[0] + ",y:" + location[1]);
  56.             //设置弹出窗体的背景
  57.             pw.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
  58.             contentView.startAnimation(sa);
  59.             pw.showAtLocation(v, Gravity.LEFT | Gravity.TOP, location[0] + v.getWidth(), location[1] + v.getHeight());

  60.         }
  61.     }

  62.     @Override
  63.     protected void onDestroy() {
  64.         // TODO Auto-generated method stub
  65.         if (pw != null && pw.isShowing()) {
  66.             pw.dismiss();
  67.             pw = null;
  68.         }
  69.         super.onDestroy();
  70.     }

  71.     @Override
  72.     public boolean onCreateOptionsMenu(Menu menu) {
  73.         // Inflate the menu; this adds items to the action bar if it is present.
  74.         getMenuInflater().inflate(R.menu.main, menu);
  75.         return true;
  76.     }

  77. }
复制代码
layoutactivity.xml
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:paddingBottom="@dimen/activity_vertical_margin"
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"
  7.     android:paddingRight="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_vertical_margin"
  9.     tools:context=".MainActivity" >

  10.     <Button
  11.         android:onClick="popupWindow"
  12.         android:layout_width="wrap_content"
  13.         android:layout_height="wrap_content"
  14.         android:text="弹出窗体" />

  15. </RelativeLayout>
复制代码
popup.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="wrap_content"
  4.     android:layout_height="wrap_content"
  5.     android:background="#ff3311"
  6.     android:orientation="vertical" >

  7.     <ProgressBar
  8.         android:id="@+id/progressBar1"
  9.         style="?android:attr/progressBarStyleLarge"
  10.         android:layout_width="wrap_content"
  11.         android:layout_height="wrap_content" />

  12.     <CheckBox
  13.         android:id="@+id/checkBox1"
  14.         android:layout_width="wrap_content"
  15.         android:layout_height="wrap_content"
  16.         android:text="CheckBox" />

  17.     <Button
  18.         android:id="@+id/button1"
  19.         android:layout_width="wrap_content"
  20.         android:layout_height="wrap_content"
  21.         android:text="Button" />

  22.     <ProgressBar
  23.         android:id="@+id/progressBar2"
  24.         android:layout_width="wrap_content"
  25.         android:layout_height="wrap_content" />

  26. </LinearLayout>
复制代码
AndroidManifest.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.     package="com.itheima62.popupwindowdemo"
  4.     android:versionCode="1"
  5.     android:versionName="1.0" >

  6.     <uses-sdk
  7.         android:minSdkVersion="8"
  8.         android:targetSdkVersion="18" />

  9.     <application
  10.         android:allowBackup="true"
  11.         android:icon="@drawable/ic_launcher"
  12.         android:label="@string/app_name"
  13.         android:theme="@style/AppTheme" >
  14.         <activity
  15.             android:name="com.itheima62.popupwindowdemo.MainActivity"
  16.             android:label="@string/app_name" >
  17.             <intent-filter>
  18.                 <action android:name="android.intent.action.MAIN" />

  19.                 <category android:name="android.intent.category.LAUNCHER" />
  20.             </intent-filter>
  21.         </activity>
  22.     </application>

  23. </manifest>
复制代码
strings.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>

  3.     <string name="app_name">PopupWindowDemo</string>
  4.     <string name="action_settings">Settings</string>
  5.     <string name="hello_world">Hello world!</string>

  6. </resources>
复制代码







上一篇:小米5s plus官方MIUI刷机包历史版本汇总帖
下一篇:【经验分享】用adb揪出安卓APP弹窗广告的原形
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

微信公众号
微信扫码关注
获取最新资讯

Archiver|手机版|小黑屋|宅科技 ( 粤ICP备15107403号

GMT+8, 2018-8-18 17:56 , Processed in 0.326828 second(s), 32 queries .

Copyright © 2016 宅科技 | 智能终端极客社区

Powered by Discuz! X3.2 Licensed

快速回复 返回顶部 返回列表