首页 > 其他分享 >android WindowManager的简单使用

android WindowManager的简单使用

时间:2023-09-08 11:01:10浏览次数:39  
标签:layoutParams WindowManager LayoutParams 简单 import android View


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.App0"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>
package com.koala.app0;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private static Context context;
    private Button button;
    private View imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = getApplication().getApplicationContext();
        button = findViewById(R.id.btn1);

        imageView = LayoutInflater.from(context).inflate(R.layout.png,null);

        button.setOnClickListener(listener);

    }

    private View.OnClickListener listener =  new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
//            layoutParams.format = PixelFormat.RGBA_8888;
            layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
//            layoutParams.width = 200;
//            layoutParams.height = 200;

//            layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;

//            layoutParams.gravity = Gravity.BOTTOM | Gravity.LEFT;
            layoutParams.x = 30;
            layoutParams.y = 40;
            WindowManager windowManager = getWindowManager();
            windowManager.addView(imageView,layoutParams);
        }
    };
    
    
    

    public static Context getContext(){
        return context;
    }
}


标签:layoutParams,WindowManager,LayoutParams,简单,import,android,View
From: https://blog.51cto.com/u_15704977/7407683

相关文章

  • Apktool编译时报error: No resource identifier found for attribute XXX in package
    问题描述使用apktool编译android源码时,报W:XXX.xml:X:error:Noresourceidentifierfoundforattribute'iconTint'inpackage'android'错误。解决方案这是由于API版本较低。处理方法:找到相应文件,把对应的属性删除掉,再重新编译。......
  • Qt5.9 Graphics View 最简单制作画图
    话不多说先看程序的效果图: 这个也算是一个基础的制作,下面带大家来看看如合制作吧。首先,从QGraphicsView类继承定义一个图形视图类QWGraphicsView。qwgraphicsview.h#ifndefQWGRAPHICSVIEW_H#defineQWGRAPHICSVIEW_H #include<QObject>#include<QGraphicsView>/......
  • Android 10第一次开机进Launcher闪白屏
    一、背景说明问题描述:软件第一次开机或恢复出厂设置后开机,进入原生Launcher前闪现白屏,由于显示时间较短(约500ms),白屏界面未显示完整(1/3~1/2屏幕大小)就消失了。Android版本:Android10关键词:Android10、开机、白屏二、问题分析所涉及的代码及其路径汇总如下:packages\apps\Launcher3\s......
  • 三大工厂模式 简单工厂模式,工厂方法模式,抽象工厂模式 手撕代码
    1.简单工厂模式#include<bits/stdc++.h>usingnamespacestd;classproduce{private:intwidth;intheight;public:produce(intwidth,intheight):width(width),height(height){}virtual~produce(){}};classA:publicproduce{public......
  • nicegui:Python 图形界面库,简单好用
    前言在现代计算机应用程序开发中,图形用户界面(GUI)是用户与程序交互的重要组成部分。然而,GUI开发往往需要大量的代码和复杂的布局,给开发者带来了一定的挑战。在本篇博文中,将介绍nicegui,它是一个简单易用的图形用户界面库,提供了一种简化GUI开发的方式,使开发者能够更快速地构建吸......
  • Vue简单浮动标签(simple floating labels)
    简介及使用教程Vue简单浮动标签(simplefloatinglabels)是一个基于Vue.js的简单浮动表单标签组件,支持自定义颜色、边框及错误信息。安装npmivue-simple-floating-labels使用引入组件importFloatingLabelfrom'vue-simple-floating-labels'exportdefault{......
  • Android程序员面试攻略:如何准备和应对技术面试
    前言作为一名程序员,面试是找工作的必经之路。技术面试考察候选人的技术知识和解决问题的能力,是程序员面试的重头戏。那么如何提高面试通过率和获得理想offer?这里有一些准备和应对技术面试的攻略:回顾和巩固基础知识程序员面试中最常被问到的知识点是数据结构和算法、操作系统、......
  • 简单的时间初始化yyyy-MM-dd HH:mm:ss 格式
    背景因为要和后台进行时间格式进行统一,然后涉及到表单打开时候的初始化问题,但直接传入newDate(),element-ui会将数据转换为要求的格式显示,但实际值还是newDate()对象,而不是yyyy-MM-ddHH:mm:ss,尽管我已经在上边约束了,没办法只能手写个初始化方法了直接放代码 initDate......
  • spring中的aop(面向切面编程)需要到导入的包与简单示例
    2023-09-07<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://......
  • Android 调试桥 (adb) 使用教程/示例
    sidebar:autoAndroid调试桥(adb)Android调试桥(adb)是一种功能多样的命令行工具,可让您与设备进行通信。adb命令可用于执行各种设备操作,例如安装和调试应用。adb提供对Unixshell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:客......