1. 程式人生 > >彈出框 ----有動畫效果----在控制元件下方彈出

彈出框 ----有動畫效果----在控制元件下方彈出

效果圖
這裡寫圖片描述

這是一個彈框有動態效果不過就是 東西多了一些 ,首先在res下建立anim資料夾,然後建立兩個“set”的xml 檔案: 這是樣式引用的檔案,讓彈框—佈局等擁有這個動畫效果
res下多新增這一個檔案,如圖

這是其中一個的set xml 寫法

這裡寫圖片描述

在values 下的styles 這樣就建立了一個樣式了,是activity都可以用

這裡寫圖片描述

彈框的佈局 程式碼 : 這裡面引用了三個的xml檔案分別當做邊框,間隔線,背景 這個自己設定我就不貼出來了

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<RelativeLayout android:layout_width="70dp" android:layout_height="130dp" android:background="@drawable/yjb_ms_bottom_circular_red_background_for_view"> <LinearLayout android:layout_width
="match_parent" android:layout_height="match_parent" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:background="@drawable/yjb_ms_bottom_circular_white_background_for_view" android:orientation
="vertical">
<ImageView android:layout_width="match_parent" android:layout_height="10dp" android:background="#efefef" android:scaleType="fitXY" android:src="@drawable/yjb_ms_top_drawable" /> <TextView android:id="@+id/tv_create_resume" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:drawableBottom="@drawable/yjb_ms_divider_for_horizontal" android:gravity="center" android:text="關閉" android:textColor="#000000" android:textSize="16dp" /> <TextView android:id="@+id/tv_paste_resume" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:drawableBottom="@drawable/yjb_ms_divider_for_horizontal" android:gravity="center" android:text="關閉" android:textColor="#000000" android:textSize="16dp" /> <!--<TextView--> <!--android:id="@+id/tv_guide_into_resume"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="0dp"--> <!--android:layout_weight="1"--> <!--android:gravity="center"--> <!--android:text="匯入"--> <!--android:textColor="#000000"--> <!--android:textSize="16dp" />--> </LinearLayout> </RelativeLayout> </LinearLayout>

在mainActivity 中第一步當然初始化,還有一個獲取螢幕的寬高為佈局動畫做基礎 在 onCreate 中執行 getData() 方法先

這是onCreate 的內容

  private void getData() {
        button= (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showUserOperationMenu();
            }
        });

        //獲取螢幕顯示密度
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        mDensity = metrics.density;
    }

二步

 /**
     * 顯示使用者操作彈窗
     */
    private void showUserOperationMenu() {

        //載入彈窗的佈局XML檔案
        View pwView = LayoutInflater.from(this).inflate(R.layout.yjb_ms_pw_menu_for_user_want_to_do, null);
        //初始化彈窗中的控制元件
        TextView tvCreatingResume = (TextView) pwView.findViewById(R.id.tv_create_resume);
        TextView tvPasteResume = (TextView) pwView.findViewById(R.id.tv_paste_resume);
//        TextView tvGuideIntoResume = (TextView) pwView.findViewById(R.id.tv_guide_into_resume);  
        // 建立彈窗,popupwindow中的listview能響應事件需將touchable和focusable均設為true才行!!!
        final PopupWindow pwForUserOperationMenu = new PopupWindow(pwView, ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT, true);

        //為各控制元件設定點選監聽

        tvCreatingResume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //      關閉彈框
                pwForUserOperationMenu.dismiss();
            }
        });


        tvPasteResume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              //      關閉彈框
                pwForUserOperationMenu.dismiss();
            }
        });

        // 點選外部後,視窗消失
        pwForUserOperationMenu.setBackgroundDrawable(new BitmapDrawable(getResources(), BitmapFactory.decodeFile(null)));// 必不可少!!!
        pwForUserOperationMenu.setOutsideTouchable(true);

        //給彈窗設定動畫
        pwForUserOperationMenu.setAnimationStyle(R.style.scale_y_animation_for_popupwindow);

        // 顯示彈窗    螢幕密度乘以負數 往左偏移 反之向右
        pwForUserOperationMenu.showAsDropDown(button, (int) (10 * mDensity), 0);
    }

這就完了,簡單吧彈出的佈局自己想怎麼寫就這麼寫主要的還是建立showUserOperationMenu() 這方法中不會的瞭解一下,以後就會彈出寬了,樣式網上很多,知道寫法就行,還有就是樣式也是分多種模式的

//////////////////////////////////////////////////////

以後有啥功能想要的發郵件過來我會每週中選一個寫出來
並且寫到部落格中.
[email protected]或者[email protected]

看完的同志點個頂我一下才有動力呀

相關推薦

----動畫效果----在控制元件下方

效果圖 這是一個彈框有動態效果不過就是 東西多了一些 ,首先在res下建立anim資料夾,然後建立兩個“set”的xml 檔案: 這是樣式引用的檔案,讓彈框—佈局等擁有這個動畫效果 這是其

js--對話方塊、改變控制元件內容、驗證輸入郵箱的合法性

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript">

android popupwindow從下,顯示在某控制元件上方

popupwindow彈出時從下往上,隱藏時從上往下,並且顯示在指定控制元件上方View inflate = LayoutInflater.from(getContext()).inflate(R.layout.popupwindow_shop, null);

jquery-easyui對話方塊被ActiveX控制元件遮擋

        找到引用的jquery-easy-ui的js檔案,在2430行中的<div class=\"window-shadow\"></div>的div中加入<i

Android之解決輸入法軟鍵盤擠壓螢幕或覆蓋控制元件問題

最近在最Android開發過程中,出現一個問題:一個介面上有文字輸入框,當進行輸入時,輸入法軟鍵盤會彈出擠壓螢幕介面或者覆蓋控制元件。 解決辦法是:使用Window的setSoftInputMode()方法,明確設定軟鍵盤的輸入法模式: getWindow().setSo

手機頁面alerturl咋辦

在script中加入如下程式碼 window.alert = function(name){ // 重寫alert方法去掉ios下alert帶的url var iframe = doc

iOS今日頭條選擇動畫效果、FlappyBird遊戲源碼

最全 n-n 寫的不好 效果 先來 aec 發送 觸發 easy iOS精選源碼 高仿今日頭條頻道選擇彈框 超級簡單的導航條管理工具EasyNavigation navigationbar 評分視圖,支持點擊,滑動,整數小數評分 心花怒放Animation 仿樂視視

頁面重新整理載入時,就動畫效果

1. 頁面載入時就有動畫效果,transition  appear   appear-active-class 注意:引入第三方庫animate.css庫 <body> <div id="demo"> <button @

QT自定義碰撞效果控制元件

import QtQuick 2.6 import QtGraphicalEffects 1.0 /*  * 作者: yubo  * 功能: CollideAuto  * 描述: 提供一個公共呼叫碰撞動畫控制元件  * 日期: 2018-08-09 &nb

快速找到約束問題的控制元件

以前自動佈局的時候,控制元件多了,就容易出錯,但是控制元件太多了,實在看不出哪裡出了問題, 看到很多大牛也講解過,但是不是排版有問題,就是不夠詳細(原諒我是新手,喜歡直觀一點的排版),今天在做第三方分享的時候正好排版又出了問題,就特此做個記錄。 例子很簡單,只有一個分享按

VS中Debug版程式執行正常但Release版執行時控制元件異常(控制元件在執行時消失)的解決方法

#問題 首先用VS生成應用程式是正常的,然後點選最小化按鈕隱藏到下方工作列,然後再點選工作列這個圖示將應用程式還原出來,結果還原出來後應用程式下方的控制元件都無法顯示出來,這是release版本的,de

日期控制元件如何顯示時分秒

我們平常在使用日期控制元件的時候,控制元件一般都是顯示為yyyy/MM/dd格式,那麼如何將時分秒顯示出來呢?如下圖所示:選中日期控制元件,在右邊的屬性欄——格式化中,去掉d;即可實現顯示出時分秒  轉載請註明出處:

萬彩動畫大師 | 增加滑等退場動畫效果

萬彩動畫大師在此次的版本升級中新添加了一些退場動畫,有上方滑出、下方滑出、左方滑出、右方滑出、輪盤滑出和頂部縮小這些退場動畫效果,給您提供更多的選擇。 1.找到滑出的動畫 雙擊【時間軸區域】中的【動畫條】會彈出效果的視窗,可在【搜尋框】中輸入首字母【hc】,軟體會自動識別並搜尋出首字母帶有【hc】的效果,

easyui datagrid的toolbar如何新增輸入或自定義控制元件

~_~一個程式設計師的淘寶店: 點選開啟連結   <script type="text/javascript"> $(function () {  var lastIndex;             $('#tt').datagrid({          

android 點選EditText鍵盤,點選其他控制元件收鍵盤不觸發點選事件,特1控制元件收鍵盤觸發點選,特2控制元件點選不收鍵盤

說實話開發android,鍵盤真的很不聽話,非常難用,於是百度找到dispatchTouchEvent進行重寫可完成鍵盤收放,但還是不夠完美,我期望的功能如下: 1.基礎功能: a.點選輸入控制元件彈出鍵盤 b.點選非輸入控制元件收起鍵盤 2.特殊功能1

下拉、下拉控制元件之Select2

一、Select2的功能簡介select2外掛給我們帶來了更加友好的互動方式,比如查詢控制元件展開後可通過關鍵字進行檢索例如:        Select2也可以選擇帶查詢控制元件的選擇框...            Select2更是支援多值選擇框...    二、如何使用

安卓動畫——讓控制元件停留在動畫結束的位置

private void showReleaseAnimation(final View view,float y){ TranslateAnimation translateAnimation = new TranslateAnimatio

ListView點選事件失效(item裡面button按鈕控制元件)解決方法

ListView點選事件失效解決方法: 一般出現這個情況,就是你的item裡面有按鈕的點選事件,你的item裡面有button控制元件,button控制元件是搶佔焦點的,只要在你的item佈局裡面這樣子寫就可以了: &l

UITableView實現多選時沒有效果/控制元件背景顏色消失了?

我們隊自定義的cell,使用多選功能的時候沒有效果? 1.檢查自己的tableview.editing = yes /  tableview.allowMutlpleSelction = yes,設定為編輯狀態,可多選 2.檢視自己的自定義cell的控制元件是否載入到了se

習題9:設計一個Windows應用程式,窗體上一個TextBox控制元件、一個Button控制元件

設計一個Windows應用程式,窗體上有一個TextBox控制元件、一個Button控制元件。要求,每當使用者單擊按鈕時,文字框都會增加一行文字來反映單擊的次數,例如“第3次單擊按鈕”。 【解答】 1) 窗體介面如圖Ex5-5-1所示; 2) 窗體中主要控制元件屬性設