自定义实现简单的ios风格的弹窗加载进度框,一步步走向封装

自定义实现简单的ios风格的弹窗加载进度框,一步步走向封装

2023年7月15日发(作者:)

⾃定义实现简单的ios风格的弹窗加载进度框,⼀步步⾛向封装⼀,我就不吐槽现在某些UI的审美观了,android的扁平化美观的设计风格有多少个UI⾃⼰去研究过。⼤部分公司搞UI的,我就感觉苹果设计风格最棒,苹果能做出来的你搞android的就做不出来。我⼼⾥⼀万个cnm。当然了最后还是按照⼈家的效果图做,下⾯来⼏张图⽚吧,看看效果。然后撸代码

⼆,分析所需的材料: 1) ⾸先我们要知道IOS风格的弹窗需要⾼亮和圆⾓的四周⽽且不会拉升变形。所以我们 需要制作.9图⽚来达到效果。 2) 我们需要弹窗的每⼀个Dialog弹出的动画和弹窗的样式所以我们需要⾃定义弹窗样 式。因为底部的需要弹出动画和退出动画。所以我们需要⾃定义两个弹窗样式。 3) 我们需要两xml布局来设置中间和底部弹出的两个弹出所显⽰需要的空间布局。三,分析所需要的属性来⾃定义属性和动画这些: 1) 如图所⽰:弹出时候,从下往上弹出,退出时候从上往下消失所以我们需要⾃定义两个动画: 我们在res下⾯新建⼀个anim然后新建两个xml⽂件animal_show_dialog(弹出动画)和animal_dissmiss_dialog(退出动画)代码如下:这⾥动画给图⾃⼰ ⼀看就懂哦(⾮常感谢学步圆提供的图⽚): //从底部弹出时候动画设置:animal_show_ //从底部消失时候动画设置:animal_dissmiss_

2)我们必须给Dialog⾃定义样式,让其布局虚化且弹出消失有动画。代码如下我们在⾥⾯: 3)我们需要⼀个View布局来显⽰这个弹窗的内容。我们接下来定义⼀个弹窗的内容布局 代码如下dialog_sheet_: 四,Activity中进⾏Dialog设置来展⽰我们的⾃定义Dialog布局样式,运⾏代码package ilalog;import ;import ialog;import patActivity;import ;import y;import y;import ;import ;import Manager;import ew;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { te(savedInstanceState); setContentView(ty_main); } public void OnclickTx(View view){ iniDialog(); } private void iniDialog() { final AlertDialog alertDialog = new r(this, BootoomDialogStyle).create(); View view = getLayoutInflater().inflate(_sheet_layout, null); TextView txt_cancle=ewById(_cancel); TextView txt_title=ewById(_title); TextView txt_neirou=ewById(_neirou); txt_t("我的.9图⽚可以⽤来呀!"); txt_t("么么哒"); txt_tColor(); txt_lickListener(new kListener() { @Override public void onClick(View view) { s(); } }); /**这⾥必须设置Dialog最⼩宽度为屏幕宽度这样才会展开Dialog。因为背景布局是.9图⽚, 不会湿疹。**/ Display display = getWindowManager().getDefaultDisplay(); imumWidth(th()); w(view); //这⾥设置Dialog显⽰的位置 Window dialogWindow = dow(); vity( | ); Params lp = ributes(); lp.x = 0; lp.y = 0; ributes(lp); (); }}5,运⾏代码结果如下图⽚:6,⼤家这样就满⾜了么?当然不能呀!难道每次⽤都要新建好多个view,都要写这么多的代码么?当然不是,那么下⼀章我们在这章素材的基础上分装⼀个完美的IOS风格的代码库,如图1,不在使⽤时候每次都需要这么繁琐的代码设置

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689429942a246902.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信