Android超簡單懸浮窗使用教程
完全自定義懸浮窗,保證100%學(xué)會的超簡單懸浮窗
先看看效果圖:



圖1 圖2 圖3
圖1只需要31行代碼即可完成。
我們來看看這些都是如何實現(xiàn)的
使用前需要依賴庫:
第一步:將以下存儲庫將其添加到根構(gòu)建中。
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
第二步:添加依賴關(guān)系 build.gradle(Module:app)
(注意:當(dāng)前演示的版本號是1.3.1.3版本,今后會有新的版本發(fā)布,歡迎使用最新版)
dependencies {
...
implementation 'com.github.1079374315:GSLS_Tool:v1.3.1.3'
}
依賴詳細教程:
第一步:自定義的xml布局 demo_floating_window
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!-- ConstraintLayout 必須要將對話框大小設(shè)置出來,解決設(shè)置最外層寬高無效的問題 -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view_bg"
android:layout_width="300dp"
android:layout_height="200dp"
android:background="#5B77D5FF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="×"
android:textColor="#99FFFFFF"
android:textSize="28sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#8D03B1FF"
android:padding="10dp"
android:text="簡易自定義對話框\n支持返回數(shù)據(jù)\n支持監(jiān)聽返回鍵\n用法與 Fragment 毫無差異\n"
android:textColor="#A4FFFFFF"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/btn_ok"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_back" />
<Button
android:id="@+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="好的"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btn_cancel"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"
app:layout_constraintBottom_toBottomOf="@+id/btn_ok"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/btn_ok" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
第二步:加載懸浮窗布局
//加載布局
@GT.Annotations.GT_AnnotationDialogFragment(R.layout.demo_floating_window)
public class DemoFloatingWindow extends GT.GT_FloatingWindow.AnnotationFloatingWindow {
@Override
protected void initView(View view) {
super.initView(view);
setDrag(true);//設(shè)置可拖動
}
@GT.Annotations.GT_Click({R.id.btn_ok, R.id.tv_back, R.id.btn_cancel})
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_ok:
GT.toast("單擊了ok");
break;
case R.id.tv_back:
case R.id.btn_cancel:
finish();
break;
}
}
}
第三步:使用懸浮窗
//加載布局
@GT.Annotations.GT_AnnotationActivity(R.layout.activity_main)
public class MainActivity extends GT.GT_Activity.AnnotationActivity {
@Override
protected void initView(Bundle savedInstanceState) {
super.initView(savedInstanceState);
findViewById(R.id.btn_start).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startFloatingWindow(DemoFloatingWindow.class);//啟動懸浮窗
}
});
}
}
總結(jié):熟悉GT庫的是不是感覺特別熟悉,沒錯,GT內(nèi)的Activity、Fragment、DialogFragment、FloatingWindow 的使用方法與結(jié)構(gòu)都是一模一樣的,也就是說只要你學(xué)會了其中一個,那就等同于其他的你都學(xué)會了。
糖豆:如果想要圖2、圖3的源碼,請直接下載最新GT庫,GT庫中的 util 目錄中就是源碼。 啟動GT模擬手機版懸浮窗的代碼如下:

點個關(guān)注點個贊唄(〃'▽'〃),關(guān)注博主最新發(fā)布庫:GitHub - 1079374315/GT
到此這篇關(guān)于Android超簡單懸浮窗使用教程的文章就介紹到這了,更多相關(guān)Android懸浮窗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android 對話框彈出位置和透明度的設(shè)置具體實現(xiàn)方法
在android中我們經(jīng)常會用AlertDialog來顯示對話框。通過這個對話框是顯示在屏幕中心的。但在某些程序中,要求對話框可以顯示在不同的位置。2013-07-07
Android 實現(xiàn)圓圈擴散水波動畫效果兩種方法
這篇文章主要介紹了Android 實現(xiàn)圓圈擴散水波動畫效果兩種方法,需要的朋友可以參考下2018-05-05
詳解Android使GridView橫向水平滾動的實現(xiàn)方式
Android為我們提供了豎直方向的滾動控件GridView,這篇文章主要介紹了Android使GridView橫向水平滾動的實現(xiàn)方式,有興趣的可以了解一下2017-05-05
Android開發(fā)中使用Volley庫發(fā)送HTTP請求的實例教程
這篇文章主要介紹了Android開發(fā)中使用Volley庫發(fā)送HTTP請求的實例教程,包括創(chuàng)建Volley單例的基本知識與取消Request請求的技巧等,需要的朋友可以參考下2016-05-05

