最近项目中人脸注册需要尽量多的捕捉人脸特征,就要想办法使得人脸在注册中呈现不同角度,于是想到在屏幕内随机位置弹出一个吸引注意力的View。
本文中主要用到:
1.view.setX();setY()方法。
2.帧动画简单使用
3.addView前记得removeView();

package com.interjoy.testdemo;import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;import java.util.Random;public class SparkActivity extends Activity {private FrameLayout frameLayout;//烟花的父控件private int screenWidth, screenHeight;//屏幕的宽度,高度private ImageView imageView;//显示烟花动画@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_spark);initViews();}private void initViews() {//获取屏幕宽高WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);DisplayMetrics outMetrics = new DisplayMetrics();wm.getDefaultDisplay().getMetrics(outMetrics);screenWidth = outMetrics.widthPixels;screenHeight = outMetrics.heightPixels;frameLayout = (FrameLayout) findViewById(R.id.fl_spark);imageView = new ImageView(this);//点击事件弹出动画findViewById(R.id.btn_popup).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {frameLayout.removeAllViews();//避免重复添加某控件,所以要移除loadAnim2();}});}private void loadAnim2() {//动画控件的宽高int viewWidth = 255;int viewHeight = 255;//随机生成一个屏内的位置来显示动画int x = getRandomInt(screenWidth - viewWidth);int y = getRandomInt(screenHeight - viewHeight);imageView.setX(x);imageView.setY(y);//设置动画的宽和高FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(viewWidth, viewHeight);frameLayout.addView(imageView, lp);AnimationDrawable anim = new AnimationDrawable();for (int i = 1; i < 22; i++) {//资源文件res/drawable中有图片bomb1~bomb21int id = getResources().getIdentifier("bomb" + i, "drawable", getPackageName());Drawable drawable = getResources().getDrawable(id);anim.addFrame(drawable, 100);}anim.setOneShot(false);imageView.setImageDrawable(anim);anim.start();}//生成随机数 范围 [0,max)private int getRandomInt(int max) {Random random = new Random();return random.nextInt(max);}
}

布局文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"tools:context="com.interjoy.testdemo.SparkActivity"><FrameLayout
        android:id="@+id/fl_spark"android:layout_width="match_parent"android:layout_height="match_parent" /><Button
        android:id="@+id/btn_popup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="bottom|center_horizontal"android:layout_marginBottom="40dp"android:text="随机弹烟花" />
</FrameLayout>

贴上一张效果图:

Android屏幕随机位置弹出View相关推荐

  1. android 输入法更换_一种动态切换Android系统输入法的弹出模式的方法与流程

    本发明涉及一种Android系统利用动态切换输入法的弹出模式解决输入法跳闪抖动问题的方法,属于安卓系统技术领域. 背景技术: 随着Android系统的快速发展以及安卓手机的不断普及,基于Android ...

  2. Android编程:底部弹出输入框

    Android编程:底部弹出的对话框 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:Android Studio ...

  3. android studio菜单自动弹出,Android实现微博菜单弹出效果

    先上Android仿微博菜单弹出效果图,这个截图不是很流畅,大家可以下载apk试一下. 说一下实现思路: 1.截取当前窗口,对图片做高斯模糊处理,将处理后的图片做popupwindow的背景图片: 2 ...

  4. android 微博底部弹出,Android实现微博菜单弹出效果

    Android实现微博菜单弹出效果 发布时间:2020-08-23 07:48:12 来源:脚本之家 阅读:89 作者:gqdy365 先上Android仿微博菜单弹出效果图,这个截图不是很流畅,大家 ...

  5. WindowManager解析(二)Android悬浮框无法弹出输入法的原因和无需权限显示悬浮窗

    Android悬浮框无法弹出输入法 最近要研究悬浮窗方面的东西,遇到一个问题,我的悬浮窗里面有一个输入框,但是不弹出输入法,后来找到一个方法: 在WindowManager的实例获取方式不对,之前是这 ...

  6. [转贴]现在在做一个WEB的站内消息系统,从工具栏位置弹出一徐徐上升的窗口...

    现在在做一个WEB的站内消息系统, 想在用户登陆时, 如果有未读短消息 则从工具栏位置弹出一徐徐上升的窗口 显示提醒信息! <script language="JavaScript&q ...

  7. Android判断软键盘弹出并隐藏的简单完美解决方案

    Android判断软键盘弹出并隐藏的简单完美解决方案 参考文章: (1)Android判断软键盘弹出并隐藏的简单完美解决方案 (2)https://www.cnblogs.com/thare1307/ ...

  8. android系统动态切换输入法,一种动态切换Android系统输入法的弹出模式的方法与流程...

    技术特征: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下: (1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230 ...

  9. Delphi XE7实现的任意位置弹出菜单

    Delphi XE7中目前还没有弹出菜单组件,这个弹出菜单应用很普遍,在JAVA开发的安卓程序中很简单就可以用上了,应该说是一个标准控件.看了一些例子,但是都不能满足我想在任意位置弹出菜单需求,于是自 ...

最新文章

  1. JDK的动态代理深入解析(Proxy,InvocationHandler)(转)
  2. 记一次 Python Web 接口优化,性能提升25倍!
  3. 童年真的回来了么?《摩尔庄园》手游深度分析
  4. 獲取mysql字段的注释或描述
  5. 无论您的工作职能如何,如何获得功绩
  6. 【Elastischearch】Elastischearch 的 ID 生成器 UUIDGenerator
  7. 2007年河南湖北各市GDP
  8. python3.7 获取网络时间
  9. 数论和有限域的基本概念
  10. 黑帽seo技术大揭秘
  11. 目标检测 3—— 人脸检测
  12. 异数OS 织梦师-纤手(二)-- LPC RPC篇
  13. 深度学习理论——特征提取算法
  14. 计算机视觉论文-2021-11-03
  15. 玩聚榜单-仿照Technorati的Popular频道
  16. 记录走过python的坑:明明安装了某个模块,却提示“no mudule named xxx“
  17. 解决 用 Nginx 处理 跨域问题
  18. CSP M4 B ZJM要抵御宇宙射线
  19. 寒冬之下持续吸金,蛰伏30年的国产数据库终迎黄金时代?
  20. 人人自媒体的时代,程序员该如何利用好自己的优势?我记住了这些神器...

热门文章

  1. (数据结构)排序二叉树
  2. 学生信息管理系统—知识篇
  3. 龙芯linux怎么关闭防火墙,重新编译龙芯梦兰loongnix系统内核添加iptables_nat模块...
  4. 阿里云https证书tomcat配置
  5. 2022年虎年姓氏头像微信小程序源码+文字变音+喝酒娱乐多功能小程序
  6. 我的世界java版移除猪灵了吗_我的世界:还不知道怎么对付猪灵?有些小技巧只有老玩家知道...
  7. Nginx的HTTP Code444和307设置
  8. (珍藏版)55 个细节帮你做好Java的 性能优化
  9. Unity编辑器插件 ——等比例重新设置图片size
  10. Java cpu 监控 分析