自定义Dialog之底部弹出Dialog

2024年Android最全android popwindow仿微信右上角弹出框,dialog底部显示,2024年最新华为面试题答案123 其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。这也是我这些年来养成的习惯,一定要学会把好的东西,归纳整理,然后系统的消化吸收,这样才能极大的提高学习效率和成长进阶。碎片、零散化的东西,我觉得最没有价值的。就好比你给我一张扑克牌,我只会觉得它是一张废纸,但如果你给我一副扑克牌,它便有了它的价值。 阅读详情

先预览下效果:


自定义Dialog,设置Dialog居于底部并且和屏幕一样宽:

public class BottomStyleDialog extends Dialog implements OnItemClickListener {

    private String[] mNames = new String[] {
            "我是条目1", "我是条目2", "我是条目3", "我是条目4", "我是条目5","我是条目6","我是条目7"
    };

    private ListView mLv;

    private ArrayList<StyleItem> mList = new ArrayList<StyleItem>();

    private StyleAdapter mAdapter;

    public BottomStyleDialog(Context context) {
        // 在构造方法里, 传入主题
        super(context, R.style.BottomDialogStyle);
        // 拿到Dialog的Window, 修改Window的属性
        Window window = getWindow();
        window.getDecorView().setPadding(0, 0, 0, 0);
        // 获取Window的LayoutParams
        LayoutParams attributes = window.getAttributes();
        attributes.width = LayoutParams.MATCH_PARENT;
        attributes.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
        // 一定要重新设置, 才能生效
        window.setAttributes(attributes);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_dialog);
        initView();
        initData();
    }

    private void initView() {
        mLv = (ListView) findViewById(R.id.lv_view_dialog);
        mLv.setOnItemClickListener(this);
    }

    private void initData() {
        // 填充数据集合
        for (int i = 0; i < mNames.length; i++) {
            StyleItem styleItem = new StyleItem();
            styleItem.mName = mNames[i];
            mList.add(styleItem);
        }
        mAdapter = new StyleAdapter(getContext(), mList);
        mLv.setAdapter(mAdapter);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mAdapter.notifyDataSetChanged();
    }
}
styles中定义Dialog的样式及其进入和退出动画

<!-- 自定义Dialog主题 -->
<style name="BottomDialogStyle" parent="@android:style/Theme.Dialog">
	<item name="android:windowNoTitle">true</item>
	<item name="android:windowBackground">@android:color/white</item>
	<item name="android:windowAnimationStyle">@style/BottomDialogAnimation</item>
</style>

<!-- 自定义Dialog动画 -->
<style name="BottomDialogAnimation">
	<item name="android:windowEnterAnimation">@anim/input_method_enter</item>
	<item name="android:windowExitAnimation">@anim/input_method_exit</item>
</style>
Dialog中使用的Adapter:

public class StyleAdapter extends BaseAdapter {

    private Context mContext;

    private ArrayList<StyleItem> mList;

    public StyleAdapter(Context context, ArrayList<StyleItem> list) {
        mContext = context;
        mList = list;
    }

    @Override
    public int getCount() {
        return mList.size();
    }

    @Override
    public StyleItem getItem(int position) {
        return mList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = View.inflate(mContext, R.layout.item_dialog_style, null);
            holder = new ViewHolder();
            holder.tvName = (TextView) convertView.findViewById(R.id.tv_item_dialog_name);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        StyleItem item = getItem(position);
        holder.tvName.setText(item.mName);
        return convertView;
    }

    static class ViewHolder {
        TextView tvName;
    }
}
点击展示Dialog

BottomStyleDialog bottomStyleDialog = new BottomStyleDialog(MainActivity.this);
bottomStyleDialog.show();
代码GitHub地址


Android实践-自定义dialog从屏幕底部弹出并且充满屏幕宽度 通常我们使用dialog的时候会遇到一些问题,比如我想用自己定义的布局来替代系统那个黑乎乎的布局时我要怎么做?我想要指定dialog从底部弹出而不是在屏幕中央弹出要怎么做?我设置了dialog布局的宽度为填充父窗体然而实际效果却不是充满全屏的,这时我该怎么做? 阅读详情

相关推荐

Android实现屏幕底部弹出Dialog (附完整源码)

Android实现屏幕底部弹出Dialog (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 345

Android 基于BottomSheetDialog 自定义底部弹出Dialog

前言 BottomSheetDialog 是 Android 6.0 推出的新控件,即 Base class for Dialogs styled as a bottom sheet 基于Dialog样式的一个底部对话框 但原生控件可扩展性往往满足不了日常开发,于是自己基于它自定义一个Dialog,使用方便,可扩展性高 一、效果 二、使用步骤 1.引入库 implementation 'androidx.recyclerview:recyclerview:1.1.0' 2.代码

X_sunmmer的博客 9615

Android实现从底部弹出的Dialog示例(一)

主要介绍了Android实现从底部弹出的Dialog示例(一),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

从屏幕底部弹出的dialog

先上下效果图: 简单实现了一个在项目中比较常用的效果,主要实现有两点: 1.dialog的弹入弹出有动画效果 2.能控制dialog弹出的最大高度 好,目标明确,开撸 自定义BottomDialog package com.example.zhoumohan.luckymorning.common.widget; import android.app.Dialog; impor...

qq_27246079的博客 2906

要配置西门子G120XA变频器实现**端子启停**和**Modbus RTU(485)频率给定

如有问题,可通过STARTER软件在线诊断Modbus通讯状态。要配置西门子G120AX变频器实现。

微:13763355074 4847

Excel数字变成了小数点+E+17?这些方法帮你解决!

本文介绍了三种解决Excel中数字变成小数点+E+17问题的方法:通过下拉箭头或右键菜单设置单元格格式为文本、使用TEXT函数将科学计数法转换为文本。这些方法各有优缺点,适用于不同的场景和需求。在实际应用中,我们可以根据具体情况选择合适的方法来解决问题。通过以上方法,我们可以轻松地从繁琐的小数点+E+17问题中解脱出来,更便捷地处理Excel中的数字。希望本文能够帮助到您,让您在使用Excel时更加得心应手!

nntxthml的博客 1246

android view设置底部弹出动画,Dialog底部弹出自定义view并且伴随动画弹出和消失...

原图点击后代码@overridepublic void onclick(view view) {switch (view.getid()) {//加号逻辑case r.id.iv_more:alertdialog.builder builder = new android.app.alertdialog.builder(this,r.style.remind_dialog);layoutinfla...

weixin_30569443的博客 768

几款常见存储系统的对比分析

如何对比选择存储系统?本文给你答案!本文将详细对比NetApp、Lsilon、Vast Data、DDN lustre和WekaFS的五个存储系统的简单性、速度、规模及标准。

hongcloudtech的博客 1679

android 弹出自定义view,Dialog底部弹出自定义view并且伴随动画弹出和消失

原图点击后代码@Overridepublic void onClick(View view) {switch (view.getId()) {//加号逻辑case R.id.iv_more:AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this,R.style.remind_dialog);LayoutInfla...

weixin_33408420的博客 377

水文地质人必备:用Origin Pro 2023手把手教你搞定Piper三线图(附数据模板)

本文详细介绍了如何使用Origin Pro 2023绘制专业级Piper三线图,适用于水文地质数据分析。从数据准备、百分比计算到图表参数设置,提供全流程指导,并附赠数据模板和样式预设文件,帮助用户快速掌握这一水文地球化学分析的核心工具。

weixin_30568591的博客 533

别再只看图了!代谢组学OPLS-DA分析,R2Y和Q2Y到底怎么看才不踩坑?

本文深入解析代谢组学OPLS-DA分析中的关键指标R2Y和Q2Y,揭示如何避免过拟合陷阱。通过详细解读模型解释能力(R2Y)和预测能力(Q2Y),结合置换检验方法,提供完整的模型评估流程与实战建议,帮助研究者获得可靠的分析结果。

weixin_42638178的博客 196

自定义控件:底部弹出的dialog

自定义控件:底部弹出的dialog 控件功能详解: 传入string[ ]数组或者List< String >集合作为要显示的item内容的数据源 点击item,在EditText上回显 话不多说,看代码 import android.app.Dialog; import android.content.Context; import android.os.Bundle; impo...

weixin_43858255的博客 386

SecureCRT串口连接保姆级教程:从驱动安装到波特率设置(附常见问题解决)

本文提供SecureCRT串口连接的保姆级教程,涵盖从USB转串口驱动安装、端口识别到波特率等核心参数设置的完整流程。针对连接失败、乱码、键盘输入无响应等高频问题,给出了深度排查与解决方案,帮助网络与嵌入式开发新手快速掌握串口调试技能。

weixin_29281941的博客 433

Android 底部弹出自定义Dialog(支付宝微信选择)

前言 Android 底部弹出自定义Dialog(支付宝微信选择) 之前做过很多 一直没有总结过 这次做一个总结 加深一下记忆 为别人留下一个可参考的方案 不多说 直接上gif效果图 UI希望の效果 实际の实现效果Gif 代码总结 首先写一个dialogDemo继承Dialog 需要实现构造方法 选择2参的即可 传一个上下文和一个dialog主题 剩下的就按照流程写 /** * @author lyudony * @date 2020/8/4. * description:支付方式dialog

吕氏春秋i 1332

MATLAB应用实战系列(四十三)-基于MATLAB的光伏并网系统仿真设计

在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行。 壹 构建太阳能电池模型。 初始化参数如下图所示。 贰 构建MPPT控制模型。 具体封装如下所示: 通过PWM算法实现DC-DC稳步输出最大点。 叁 三、构建直流短距离输电线路。 仿真模型如下图: 通过电容来均衡线路电压,使得线路电压保持可靠性。 肆 通过逆变器变换,使得直流线路转换成...

wenyusuran的专栏 3169

基于 STM32 设计的 HC05 蓝牙音箱

本项目介绍如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。该音箱可以接收来自手机或其他蓝牙设备的音频数据,并通过扬声器播放。该项目展示了如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。易于实现功能实用可扩展性强如果您需要开发一个蓝牙音箱,该项目可以作为参考。

走向CTO的路上... 2471

Android自定义底部弹出Dialog

自定义底部弹出Dialog

尉迟涛的博客 4558

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

常用dialog(自定义布局底部弹出)

常用dialog,从底部弹出,加载的自定义布局 废话不多说,上图: 图

geaosu2的博客 218

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

自定义 DialogFragment 实现底部弹出 dialog

前端时间公司做的项目要求和 iOS 版本的 UI 风格保持高度的一致,虽然我个人及其排斥这种仿 iOS 的 UI,然而人在屋檐下,不得不出卖自己的节操。其中就有一个底部弹出 dialog 的效果,宽度还是全屏的,就项这个样子(其实这张图就是我最终实现的效果): 于是乎百度 google 了一番,居然没有找到用 DialogFragment 实现的类似的效果,网上大多实现类

Zackratos的博客 7543

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android Dialog底部弹出菜单:从自定义样式到触摸交互全解析

本文全面解析Android底部弹出菜单的实现,从自定义Dialog样式、布局设计到触摸交互处理。详细介绍了如何通过继承Dialog类、定义窗口动画和设置点击事件监听器(View.OnClickListener)来创建流畅的用户体验,包括触摸外部关闭和动画效果优化等实用技巧。

w8x9y0z1的博客 1047

学习笔记之——自定义Dialog仿ios弹出底部菜单

先上效果图,自定义Dialog仿ios弹出底部菜单如下所示:                 源码下载地址:

LXLYHM的博客 3148

Android弹出自定义Dialog,android自定义Dialog实现底部弹窗

android自定义Dialog实现底部弹窗拿到这个需求,很多人都是直接想用popWindow 实现,但是这样的效果我们完全可以根据系统的Dialog 自定义一个。AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setTitle("SSS");builder.show();这样就直接显...

weixin_35411480的博客 1261

Android自定义底部弹出dialog

Android自定义底部弹出dialog 先看效果: 首先创建一个layout文件 <?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" and

qq_42639501的博客 640

android 5.0以上版本自定义dialog从屏幕底部弹出并且充满屏幕宽度

android  自定义dialog,从底部弹框显示,发现总是底部,左右出现不能全屏填充展示, 很多同学提出解决,  Window win = dialog.getWindow();  win.getDecorView().setPadding(0, 0, 0, 0);  WindowManager.LayoutParams lp = win.getAttribut

Steampy专栏 1626

Android自定义dialog从屏幕底部弹出

1、自定义dialogimport android.app.AlertDialog; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.view.Gravity; import android.vi...

maxiaoyin111111的博客 2646
上一篇: 导入项目一直Gradle project info
下一篇: ListView用法小结
jiangtea
博客等级 码龄10年 33粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值