底部弹出通知android开发_android开发activity点击打开从底部弹出 - CSDN
  • android FloatingActionMenuAndroid 底部弹出框效果

    FloatingActionMenuAndroid

    简介:Floating Action Menu for Android

    Floating Action Menu for Android This project is inspired from Gmail like Floating Action Menu in Android App. Tested it on both Lollipop and Pre lollipop with Android Support Library. Also tested the new ConstraintLayout, Data Binding, and Cursive Font-Family. The Font-Family attribute works only for API level 26 and above.

    FloatingActionMenuAndroid

    FabMenu TextView font in Roboto font-family

    FabMenu TextView font in new Cursive font-family

    Soon I'll add the Navigation Drawer to the same Activity and Floating Action Menu will have a smooth transition in its Alpha range to hide and show on Drawer open/close.

    展开全文
  • Android编程:底部弹出输入框

    千次阅读 2017-05-09 07:44:06
    环境:主机:WIN10开发环境:Android Studio 2.2 Preview 3说明:在《Android编程:底部弹出的对话框》中实现了底部弹出的对话框。在此基础上实现通用的输入框,效果如下图所示。输入框类中通过回调机制通知活动,...

    Android编程:底部弹出的对话框


    本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.


    环境:

    主机:WIN10

    开发环境:Android Studio 2.2 Preview 3


    说明:

    《Android编程:底部弹出的对话框》中实现了底部弹出的对话框。在此基础上实现通用的输入框,效果如下图所示。输入框类中通过回调机制通知活动,从而实现了活动与对话框的解耦。



    效果图:



    布局文件dialog_input.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="16dp"
        android:paddingRight="16dp">
    
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:paddingTop="16dp"
            android:paddingBottom="16dp"
            android:text="标题"/>
    
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <android.support.design.widget.TextInputEditText
                android:id="@+id/input"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:singleLine="true" />
    
        </android.support.design.widget.TextInputLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="16dp"
            android:paddingBottom="16dp">
            <Button
                android:id="@+id/cancel"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:text="取消" />
    
            <Button
                android:id="@+id/ok"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:text="确定" />
        </LinearLayout>
    </LinearLayout>


    源代码:

    InputDialogInterface.class:

    package com.bazhangkeji.classroom.common;
    
    public interface InputDialogInterface {
        void onClick();
        FilterResult filter(String inputText);
    
        class FilterResult {
            public boolean result;
            // 错误提示.result为false时有效
            public String errorHint = "";
        }
    }
    


    InputDialog.class:

    package com.bazhangkeji.classroom.common;
    
    import android.app.Dialog;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.support.design.widget.TextInputEditText;
    import android.text.TextUtils;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.RelativeLayout;
    import android.widget.TextView;
    
    import com.bazhangkeji.classroom.R;
    import com.bazhangkeji.classroom.database.DBPersonalInfo;
    import com.bazhangkeji.classroom.database.PersonalInfo;
    import com.bazhangkeji.classroom.session.VideoSessionActivity;
    import com.bazhangkeji.classroom.session.VoiceSessionActivity;
    import com.jakewharton.rxbinding2.view.RxView;
    import com.trello.rxlifecycle2.android.ActivityEvent;
    import com.trello.rxlifecycle2.android.FragmentEvent;
    import com.trello.rxlifecycle2.components.RxDialogFragment;
    
    
    import java.util.concurrent.TimeUnit;
    
    public class InputDialog extends RxDialogFragment {
        private Dialog dialog;
        private InputDialogInterface observer;
        private String title;
        private String hint;
    
        private TextInputEditText editTextInput;
    
        /**
         * 初始化.必须调用一次
         * @param title: 标题
         * @param hint: 提示
         * @param observer: 观察者对象
         */
        public void init(String title, String hint, InputDialogInterface observer) {
            this.title = title;
            this.hint = hint;
            this.observer = observer;
        }
    
        @NonNull
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            dialog = new Dialog(getActivity(), R.style.DialogPopBottom);
    
            View inflate = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_input, null);
            dialog.setContentView(inflate);
            dialog.setCanceledOnTouchOutside(true);
    
            Window window = dialog.getWindow();
            WindowManager.LayoutParams lp = window.getAttributes();
            lp.gravity = Gravity.BOTTOM;
            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
            window.setAttributes(lp);
    
            TextView textViewTitle = (TextView) inflate.findViewById(R.id.title);
            Button buttonCancel = (Button) inflate.findViewById(R.id.cancel);
            Button buttonOK = (Button) inflate.findViewById(R.id.ok);
            editTextInput = (TextInputEditText) inflate.findViewById(R.id.input);
    
            textViewTitle.setText(title);
            editTextInput.setHint(hint);
    
            RxView.clicks(buttonCancel)
                    .throttleFirst(1, TimeUnit.SECONDS)
                    .compose(this.bindUntilEvent(FragmentEvent.DESTROY))
                    .subscribe(v -> dialog.cancel());
    
            RxView.clicks(buttonOK)
                    .throttleFirst(1, TimeUnit.SECONDS)
                    .compose(this.bindUntilEvent(FragmentEvent.DESTROY))
                    .subscribe(v -> {
                        InputDialogInterface.FilterResult filterResult = observer.filter(editTextInput.getText().toString());
                        if (filterResult == null || filterResult.result) {
                            dialog.cancel();
                            observer.onClick();
                        } else {
                            editTextInput.setError(filterResult.errorHint);
                            editTextInput.requestFocus();
                        }
                    });
    
            return dialog;
        }
    
        /**
         * 得到输入内容
         * @return 输入内容
         */
        public String getInput() {
            return editTextInput.getText().toString();
        }
    }
    


     初始化:

    private InputDialog addFriendDialog = new InputDialog();

    addFriendDialog.init("搜索好友", "请输入用户id", new InputDialogInterface() {
                @Override
                public void onClick() {
                    Logging.e("click!!!" + addFriendDialog.getInput());
                }
    
                @Override
                public FilterResult filter(String inputText) {
                    return isInputValid(inputText);
                }
            });
    private InputDialogInterface.FilterResult isInputValid(String inputText) {
            InputDialogInterface.FilterResult filterResult = new InputDialogInterface.FilterResult();
            if (TextUtils.isEmpty(inputText)) {
                filterResult.result = false;
                filterResult.errorHint = "请输入用户号";
            } else if (isContainIllegalChar(inputText)) {
                filterResult.result = false;
                filterResult.errorHint = "用户号不能包含中文空格等字符";
            } else if (inputText.length() < 5 || inputText.length() > 20) {
                filterResult.result = false;
                filterResult.errorHint = "用户号长度需要5";
            } else if (inputText.startsWith("g")) {
                filterResult.result = false;
                filterResult.errorHint = "用户号不能以g开头";
            } else {
                filterResult.result = true;
            }
            return filterResult;
        }
    
        private boolean isContainIllegalChar(String str) {
            char[] ch = str.toCharArray();
            for  (char c : ch) {
                if (c <= 0x20 || c >= 0x7f) {
                    return true;
                }
            }
            return false;
        }


    显示:

    addFriendDialog.show(getFragmentManager(), "");



    展开全文
  • Android 实现屏幕底部弹出Dialog

    万次阅读 2017-09-08 15:18:02
    Android 实现屏幕底部弹出Dialog 封装使用(本文作为开发中记录使用,请轻喷)日常开发中经常用到Dialog实现用户交互界面每次都要重写一个很麻烦(产品经理一言不合就要求弹窗)效果图 这个效果要的算是比较常见的了 ...

    Android 实现屏幕底部弹出Dialog 封装使用(本文作为开发中记录使用,请轻喷)

    日常开发中经常用到Dialog实现用户交互界面每次都要重写一个很麻烦(产品经理一言不合就要求弹窗)

    效果图
    这里写图片描述

    这个效果要的算是比较常见的了

    
    
    import android.app.Dialog;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    
    
    /**
     * 自定义底部弹出对话框
     * Created by zhaomac on 2017/9/8.
     */
    
    public class ButtomDialogView extends Dialog {
    
        private boolean iscancelable;//控制点击dialog外部是否dismiss
        private boolean isBackCancelable;//控制返回键是否dismiss
        private View view;
        private Context context;
        //这里的view其实可以替换直接传layout过来的 因为各种原因没传(lan)
        public ButtomDialogView(Context context, View view, boolean isCancelable,boolean isBackCancelable) {
            super(context, R.style.MyDialog);
    
            this.context = context;
            this.view = view;
            this.iscancelable = isCancelable;
    
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(view);//这行一定要写在前面
            setCancelable(iscancelable);//点击外部不可dismiss
            setCanceledOnTouchOutside(isBackCanCelable);
            Window window = this.getWindow();
            window.setGravity(Gravity.BOTTOM);
            WindowManager.LayoutParams params = window.getAttributes();
            params.width = WindowManager.LayoutParams.MATCH_PARENT;
            params.height = WindowManager.LayoutParams.WRAP_CONTENT;
            window.setAttributes(params);
        }
    }
    
        <style name="MyDialog" parent="@android:style/Theme.Holo.Dialog">
            <!-- 是否有边框 -->
            <item name="android:windowFrame">@null</item>
            <!--是否在悬浮Activity之上  -->
            <item name="android:windowIsFloating">true</item>
            <!-- 标题 -->
            <item name="android:windowNoTitle">true</item>
            <!--阴影  -->
            <item name="android:windowIsTranslucent">true</item><!--半透明-->
            <!--背景透明-->
            <item name="android:windowBackground">@android:color/transparent</item>
            <!-- 还可以加入一些弹出和退出的动画 (lan)-->
        </style>
    展开全文
  • Android——仿ios底部弹出选择框

    千次阅读 2017-01-10 17:28:33
    底部弹出

    话不多说,直接上代码,
    先下载一个之定义的ActionSheetDialog,地址http://download.csdn.net/detail/android_wm/9734001,下载下来放入你的工程里面
    引用,直接写入你的点击事件里面

    new ActionSheetDialog(PersonalDataActivity.this)
                                .builder()
                                .setCancelable(true)
                                .setCanceledOnTouchOutside(true)
                            .addSheetItem("用相机更换头像", ActionSheetDialog.SheetItemColor.Blue,
                                    new ActionSheetDialog.OnSheetItemClickListener() {
                                        @Override
                                        public void onClick(int which) {
                                            SelectPicUtil.getByCamera(PersonalDataActivity.this);
                                        //    Toast.makeText(PersonalDataActivity.this, "用相机更换头像", Toast.LENGTH_SHORT).show();
    
                                        }
                                    })
                            .addSheetItem("去相册选择头像", ActionSheetDialog.SheetItemColor.Blue,
                                    new ActionSheetDialog.OnSheetItemClickListener() {
                                        @Override
                                        public void onClick(int which) {
                                            SelectPicUtil.getByAlbum(PersonalDataActivity.this);
                                      //      Toast.makeText(PersonalDataActivity.this, "去相册选择头像", Toast.LENGTH_SHORT).show();
                                        }
                                    }).show();
    

    就这样OK了

    展开全文
  • Android 底部弹出动画

    千次阅读 2017-01-18 15:45:08
    Android 底部弹出动画,使用overridePendingTransition 无效时,使用theme替代在 AndroidManifest.xml中 修改activity 的theme,添加windowAnimationStyle <item name="and
  • 嗯~没错的,就是这个从底部弹出的DialogFragment,然后我叫它是BottomSheet,当然通过效果图也看出来了,不仅仅是能从底部向上弹出,还能将Activity整体缩放,实现一个凹下去的效果,当然动画效果后期可以
  • Android顶部弹出提示的两种实现方式

    千次阅读 2018-04-17 09:48:28
    先给大家上一张效果图:越来越多的APP提示越来越花哨,有中间的,有顶部的,有底部的,滑动滑出的,淡入淡出的,今天就先给大家做一个简单的顶部弹出提示效果其实这是一个很简单的功能,做起来也并不复杂,我们先看...
  • // 底部弹出的对话框 public void bottomPopUp() { final Dialog dialog = new Dialog(activity, R.style.style_dialog_bottom_pop_up); dialog.setCanceledOnTouchOutside(false); Window window = dialog.getW
  • Android中软键盘弹出可能遮挡布局

    千次阅读 2017-04-07 16:26:10
    当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入。 解决办法: 方法一:在你的activity中的oncreate中setContentView之前写上...
  • Android通知栏微技巧,8.0系统中通知栏的适配

    万次阅读 多人点赞 2018-07-17 14:04:54
    大家好,今天我们继续来学习Android 8.0系统的适配。...在上一篇文章当中,我们学习了Android 8.0系统应用图标的适配,那么本篇文章,我们自然要将重点放在通知栏上面了,学习一下Android 8.0系统的通知栏适配
  • Android输入法遮盖输入框(屏幕底部输入框当输入法弹出时不回自动网上弹)
  • Android 弹出消息提醒——PopupWindow。public class MainActivity extends Activity { private PopupWindow pupWindow; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState)
  • 前段时间,写了一个小项目,...一、点击那个底部的绿色按钮,弹出一个对话框,对话框里面的内容是一个单选的GridView,关键代码如下: //add_pay就是底部那个按钮 add_pay.setOnClickListener(new View.OnClickLis...
  • 需求:在主页Activity顶部从上向下滑动出现提示条,且5秒后自动从下向上滑动... android:layout_width="match_parent" android:layout_height="120px" android:paddingStart="20px" android:paddingEnd="20px" and
  • 转载请注明出处: http://blog.csdn.net/jakeyangchina/article/details/53423453看到很多app页面里都...对话框从底部向上弹出 弹出对话框时,窗体背景呈现灰色(半透明) 对话框四周具有倒角效果 接下来具体实现,首先
  • 这篇文章内容是实现在两种情况下,如何自动弹出软键盘,一种是在Activity内,另一种是在Dialog弹出的时候,自动弹出软键盘; 首先是在activity内: 在AndroidManifest.xml文件,对应Activity处增加:android:...
  • Android开发笔记(序)写在前面的目录

    万次阅读 多人点赞 2019-02-01 15:19:32
    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯;另一方面希望通过分享自己的经验教训,与网友互相切磋,...还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来。个人的经验...
  • 底部的fragment:可以用dialogfragment从底部弹出,我这里选的第三方 compile 'me.shaohui:bottomdialog:1.1.9'//底部弹窗 1.自定义bottomdialog继承bottomdialog: public class MyBottomShit extends ...
  • 最近公司的项目里遇到了一个问题,就是最后适配的时候时候同事的华为手机时,由于底部带有虚拟按键,所以正好遮住了底部导航栏的按钮以及其他子页面的一些存在于底部的功能。 也在网上找了些解决方案,但是不是很...
  • Android 屏蔽系统通知的几种方法

    千次阅读 2019-09-07 13:54:36
    一、屏蔽SystemUI通知 SystemUI是系统级的apk,其路径为frameworks\base\packages\...这里列举屏蔽第三方应用等系统底部通知的方法: 路径:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/...
1 2 3 4 5 ... 20
收藏数 3,265
精华内容 1,306
关键字:

底部弹出通知android开发