【Android】直接利用View建立Dialog
專案需求,程式碼如下:
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(yourView);
dialog.show();
設定dialog背景透明:
dialog.getWindow().setBackgroundDrawable (new ColorDrawable(android.graphics.Color.TRANSPARENT));
利用style修改:
<style name="NewDialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating" >false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item >
<item name="android:backgroundDimEnabled">false</item>
<item name="android:background">@android:color/transparent</item>
</style>
其中 android:windowIsFloating
這一項可配合windowManager layoutParam設定dialog的寬高,以及出現的位置,我的最終程式碼為:
dialog = new Dialog(context, R.style.NewDialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// dialog.setCancelable(true);
// dialog.setContentView(bannerView);
// set position
// Setting dialogview
Window window = dialog.getWindow();
window.setGravity(Gravity.TOP);
WindowManager.LayoutParams param = window.getAttributes();
param.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
param.y = 100;
window.setAttributes(param);
// window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
dialog.setTitle(null);
dialog.setCancelable(true);
setOntouchDispose(context);
dialog.setContentView(bannerView);
dialog.show();
相關推薦
【Android】直接利用View建立Dialog
專案需求,程式碼如下: final Dialog dialog = new Dialog(context); dialog.requestWindowFeature
【Android】原始碼分析 - View事件分發機制
事件分發物件 (1)所有 Touch 事件都被封裝成了 MotionEvent 物件,包括 Touch 的位置、時間、歷史記錄以及第幾個手指(多指觸控)等。 (2)事件型別分為 ACTION_DOWN, ACTION_UP,ACTION_MOVE,ACTION_POINTER_D
【Android】在任何View上新增紅點★★★★★★★
效果圖: 原始碼地址: https://github.com/vvinner/BadgeView ★★★★★★★★★有用的話Star一下★★★★★★★★★ 使用方式: <com.porster.badgeview.badgeview.BadgeTextView
【Android】原始碼解析View.post()
emmm,大夥都知道,子執行緒是不能進行 UI 操作的,或者很多場景下,一些操作需要延遲執行,這些都可以通過 Handler 來解決。但說實話,實在是太懶了,總感覺寫 Handler 太麻煩了,一不小心又很容易寫出記憶體洩漏的程式碼來,所以為了偷懶,我就經常用 View.
【Android】自定義View-為文字新增動態閃動效果
一、概述 昨天我簡單的為View添加了一個邊框,邊框的顏色和大小都是可以自行設定的。今天我想在文字方面做一些簡單的修改,我想讓文字閃動起來。我們可以利用LinearGradient的Shader渲染器和Matrix矩陣來實現閃動效果。 二、知識說明
Android自己定義組件系列【1】——自己定義View及ViewGroup
全部 int ++ btn -i pre 剪切 final 界面 View類是ViewGroup的父類,ViewGroup具有View的全部特性。ViewGroup主要用來充當View的容器。將當中的View作為自己孩子,並對其進行管理。當然孩子也能夠是ViewGrou
【Android】一、Progress進度條實現的三種方式:主執行緒實現,Service載入,動態建立
前言 更新版本,上傳資料到服務端,都是需要進度顯示的,Android進度顯示兩種方式 ProgressDialog 和 ProgressBar 新版本中ProgressDialog不被推薦使用,所以專案採用ProgressBar 分為三種實現方式: 1、MainAct
【Android】解決底部導航tab遮擋其他view的問題
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http:
【Android】多個Activity之間利用bundle傳遞數值
安卓中的Activity相當於vb,mfc中的窗體,在多個Activity之間傳遞資料是一個相當核心的功能。下面舉個例子來說明這個問題。 一、基本目標 使用者在兩個輸入框中輸入使用者名稱、密碼之後,跳到另一個Activity當中,顯示其輸入的內容, 然後這兩個Activi
【android】利用BuildConfig.DEBUG來控制日誌的輸出
前言 在Android 應用程式開發中,不可避免地會常常輸出各種除錯資訊,通常我們會使用android.util.Log類輸出該類日誌資訊(這是推薦使用的方式)。然而,在專案釋出的時候,我們常常需要關閉這些冗餘的Log資訊,手工關閉Log相當不方
仿京東中購物車列表模組的實現【以及通過Builder的方式建立dialog彈窗 鏈式呼叫】
前段時間見群裡有個小夥伴,發了一張電商專案中比較常見的購物車列表的效果圖,問這樣的購物車列表如何實現?我們第一反應就是用ExpandableListView來實現,在上一篇部落格中我們詳細的分析了比較實用而且又炫酷的 RecyclerView的ItemDecor
【Android】自定義透明dialog 去除邊緣陰影 黑邊
在style中定義透明dialog 沒繼承 @android:style/Theme.Dialog 後 出現如上圖 紅色框裡面有條黑色的陰影的現象 解決辦法: <item name="android:windowContentOverlay">
【ndk】直接使用ndk提供的arm-linux-androideabi-gcc編譯android可執行程式
1、背景 經常使用linux交叉工具類的朋友都知道,在已安裝交叉編譯工具鏈後要交叉編譯得到linux可執行檔案只需要執行如下類似的命令(如編譯hello.c生成hello可執行檔案): arm-linux-gcc hello.c -o hellohello.c的程式碼非常
【Android】建立和使用fragment
SDK版本問題 1.系統需要執行在3.0(API 11)以及以上的版本,使用Fragment的Activity繼承普通的Activity即可。 2.系統需要執行在3.0(API 11)以下的版本,需要下載支援包android-support-v4.jar,並且使用Fragm
【Android】利用 ACRA 實現在規定時間內崩潰次數超過規定值就自動清理 APP 資料
其實 ACRA 是一個崩潰處理的類庫,其功能就是收集App崩潰堆疊資訊,生成報告併發送到指定端,當然它也可以自己定製對應的操作,所以是個處理崩潰很不錯的庫。 ACRA Application Crash Reports for Android 其實在規定時間內崩潰次數超
【問題】python利用cookie繞過驗證碼登入,是否能直接繞過驗證碼?
網上解決思路1、通過解決方案(1)獲取登入後的cookie,存為yaml格式(2)讀取yaml中的cookie資訊,進行登入實驗結果:失敗!理由是因為在有驗證碼的時候,每次登入後cookie的value值是不一樣的,即使儲存到yaml中,在二次登入的時候cookie也無法再次
【Android】View移動時RawX()為什麼要重新設定初始座標/getX()和getRawX()的區別
今天在做拖動View使其跟隨手指移動的Demo時,用了getX()和getRawX()兩種方法來實現, getX()的方法實現: public boolean onTouchEvent(MotionE
【Android】動畫 —— view高度漸變的動畫
【關鍵詞】 Android 高度 動畫 【問題】 實現可見度為 gone 的 view ,高度從0變化到測量的高度;如果view 可見度為 gone, 直接通過 view.getHeight()
【Android】自定義Dialog如何設定點選事件
我一直用findViewById,結果檢視log,總是提示我沒有獲取到控制元件,讓我疑惑了幾天,上網查了下。dialog.getWindow().findViewById(R.id.cancel_tv)
【android】對View DrawingCache的理解
View元件顯示的內容可以通過cache機制儲存為bitmap, 使用到的api有 void setDrawingCacheEnabled(boolean flag), Bitmap getDrawingCache(boolean autoSca