java懸浮窗代碼 網(wǎng)頁懸浮窗代碼

Android桌面懸浮窗效果怎么實(shí)現(xiàn)

可以模仿360手機(jī)衛(wèi)士懸浮窗的那份代碼的基礎(chǔ)上繼續(xù)開發(fā)。

創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過多達(dá)10年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:公路鉆孔機(jī)等企業(yè),備受客戶贊揚(yáng)。

打開手機(jī)衛(wèi)士主界面,然后上拉,然后點(diǎn)擊快捷設(shè)置,然后點(diǎn)擊桌面懸浮窗,就可以將360手機(jī)衛(wèi)士安卓版桌面浮窗調(diào)出來了,具體步驟如下:

1、安裝最新的360手機(jī)衛(wèi)士。

2、點(diǎn)開隱私保護(hù),打開右上角的三個(gè)點(diǎn)。

3、點(diǎn)開衛(wèi)士設(shè)置,點(diǎn)開懸浮窗。

4、開啟內(nèi)存清理懸浮窗, 選擇顯示樣式,安仔樣式或是加速球。

5、可以選擇僅在桌面顯示,若開啟則懸浮窗只出現(xiàn)在桌面,若關(guān)閉則懸浮窗會(huì)跟隨打開頁面一直出現(xiàn)。

6、可以同時(shí)開啟拖動(dòng)清理內(nèi)存,這樣直接拖動(dòng)懸浮窗圖標(biāo),就可以輕松清理內(nèi)存了。

JAVA需要一條秒表計(jì)時(shí)器代碼

好吧,已看到你的評(píng)論,我在這里再回答一次:

1)你所說的置頂如果是屬于懸浮窗效果,那么JFrame實(shí)例化后,再添加一行如下的代碼:

form1.setAlwaysOnTop(true);//?總是允許窗口置頂

2)時(shí)分秒更簡(jiǎn)單了,除一除轉(zhuǎn)轉(zhuǎn)換就行了,沒有技術(shù)含量。

3)快捷鍵通過JButton類的setMnemonic方法實(shí)現(xiàn)

So,綜上,整個(gè)程序的實(shí)現(xiàn)算法如下:

package?hky.example;

import?java.awt.BorderLayout;

import?java.awt.Container;

import?java.awt.GridLayout;

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?java.awt.event.KeyEvent;

import?java.awt.event.WindowEvent;

import?java.awt.event.WindowListener;

import?java.io.*;

import?java.util.*;

import?javax.swing.JButton;

import?javax.swing.JFrame;

import?javax.swing.JOptionPane;

import?javax.swing.JPanel;

import?javax.swing.JTextField;

import?javax.swing.plaf.OptionPaneUI;

public?class?Demo{

static?boolean?isRuning=false;

static?boolean?isFirst=true;

static?Integer?hmsCounter=0;

static?int?hour,minute,second;

@SuppressWarnings("unchecked")

public?static?void?main(String[]?args)?throws?Exception?{

JFrame?form1?=?new?JFrame("Form1");

form1.setAlwaysOnTop(true);//?1)總是允許窗口置頂

JTextField?jTextField?=?new?JTextField(10);

jTextField.setSize(10,?10);

jTextField.setText("0");

jTextField.setEditable(false);

JButton?jButton?=?new?JButton("開始");

jButton.setSize(10,?10);

Thread?thread?=?new?Thread(new?Runnable()?{

@Override

public?void?run()?{

while?(true)?{

while(isRuning){

++hmsCounter;?

//3)時(shí)分秒顯示

hour=hmsCounter/3600;

minute=hmsCounter%3600/60;

second=hmsCounter%60;

jTextField.setText(hour+"時(shí)"+minute+"分"+second+"秒");

try?{Thread.sleep(1000);}?catch?(Exception?e2)?{}

}

try?{Thread.sleep(200);}?catch?(Exception?e2)?{}//?修復(fù)上一次回答的版本可能會(huì)存在的Bug

}

}

});

jButton.setMnemonic(KeyEvent.VK_ENTER);//?2)給JButton發(fā)送?Alt+Enter快捷鍵

jButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

String?text=jButton.getText().equals("開始")?"暫停":"開始";

jButton.setText(text);

isRuning=!isRuning;

if(isFirst){

thread.start();

isFirst=false;

}

}

});

JPanel?panel?=?new?JPanel();

panel.setSize(200,?200);

panel.add(jTextField,?BorderLayout.NORTH);

panel.add(jButton,?BorderLayout.CENTER);

form1.add(panel);

form1.setBounds(200,?100,?250,?150);

form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

form1.addWindowListener(new?WindowListener()?{

@Override

public?void?windowOpened(WindowEvent?e)?{

//?TODO?Auto-generated?method?stub

}

@Override

public?void?windowIconified(WindowEvent?e)?{

//?TODO?Auto-generated?method?stub

}

@Override

public?void?windowDeiconified(WindowEvent?e)?{

//?TODO?Auto-generated?method?stub

}

@Override

public?void?windowDeactivated(WindowEvent?e)?{

//?TODO?Auto-generated?method?stub

}

@Override

public?void?windowClosing(WindowEvent?e)?{

//?窗口關(guān)閉前取出文本框的數(shù)字保存到外部文件,代碼在此處寫

JOptionPane.showMessageDialog(null,?"Are?you?sure?closing?");

}

@Override

public?void?windowClosed(WindowEvent?e)?{

//?TODO?Auto-generated?method?stub

}

@Override

public?void?windowActivated(WindowEvent?e)?{

//?TODO?Auto-generated?method?stub

}

});

form1.setVisible(true);

}

}

基于 EasyFloat 實(shí)現(xiàn)應(yīng)用內(nèi)全局懸浮窗

由于項(xiàng)目需求,需要實(shí)現(xiàn)一個(gè)應(yīng)用內(nèi)懸浮窗功能,要求是:

經(jīng)過搜索,我發(fā)現(xiàn)了一個(gè)第三方庫(kù)EasyFloat( ),功能相當(dāng)強(qiáng)大。

EasyFloat支持四種懸浮窗:

那么問題來了,我要實(shí)現(xiàn)的功能是應(yīng)用內(nèi)的懸浮窗,回到桌面后沒必要繼續(xù)顯示懸浮窗。所以我并不想申請(qǐng)懸浮窗權(quán)限。何況由于不同安卓手機(jī)系統(tǒng)的限制,懸浮窗權(quán)限沒有一個(gè)統(tǒng)一的申請(qǐng)方式,需要針對(duì)不同手機(jī)系統(tǒng)做單獨(dú)適配,測(cè)試起來也麻煩。

既然 CURRENT_ACTIVITY 不需要權(quán)限,那么有沒有辦法通過 CURRENT_ACTIVITY 來實(shí)現(xiàn)應(yīng)用內(nèi)全局懸浮窗呢?

思路:

經(jīng)過測(cè)試,這個(gè)方案完全可行。以下是實(shí)現(xiàn)步驟:

App.java:

layout_float_window.xml:

實(shí)現(xiàn)效果:

期間遇到一個(gè)編譯錯(cuò)誤:

查詢資料得知,這是由于EasyFloat是kotlin實(shí)現(xiàn)的,而我的工程是java開發(fā)的,根據(jù) , 加上kotlin相關(guān)支持即可。

效果圖:

App.java:

Utils.java:

最終實(shí)現(xiàn)效果:

完整源碼地址:

java SWING 如何實(shí)現(xiàn)?懸浮在字體上顯示提示框,如圖。

ToolTipText

setToolTipText("htmlbody bgcolor='white'點(diǎn)擊我/body/html")

網(wǎng)頁名稱:java懸浮窗代碼 網(wǎng)頁懸浮窗代碼
路徑分享:http://www.muchs.cn/article44/hhicee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站收錄網(wǎng)站建設(shè)、電子商務(wù)搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)