zoukankan      html  css  js  c++  java
  • android dialog去白色边框,设置边框大小,加载gif动画

    之前写过一个alertdialog加载gif动画的程序,但其实在调节的过程中遇到了很多问题,最重要的就是,无法让动画跟alertdialog框默认样式完美融合,总是多出来空白的部分,图片尺寸也失真,

    至此,知道alertdialog对话框不适合做自定义动画,它的样式比较局限于对话框.所以我用dialog重要实现了一次。。过程没太大不同,但它提供的自定义样式文件帮助还是很大的;

    这边我就简写一下:

    一.在res新建drawable文件夹,导入gif的帧图片集合,建animail_pro.xml,设置编写图片集;

    具体操作请看这里:http://www.cnblogs.com/userbibi/archive/2012/04/24/2467845.html

    二.在value文件夹里建一个style.xml样式文件,定义dialog样式

    style.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:android="http://schemas.android.com/apk/res/android">
    
    <style name="Dialog" parent="android:style/Theme.Dialog"> 
         <item name="android:windowNoTitle">true</item> 
         <item name="android:windowFrame">@null</item> 
         <item name="android:windowIsFloating">true</item> 
         <item name="android:windowIsTranslucent">false</item> 
         <item name="android:background">@android:color/black</item> 
         <item name="android:windowBackground">@null</item> 
         <item name="android:backgroundDimEnabled">true</item> 
     </style> 
    
    </resources>

    三.java代码部分

         Dialog dialog=null;
    
    
    public void onCreate(Bundle savedInstanceState) {
              
             super.onCreate(savedInstanceState);
      
               
                //进程加载
                
                dialog = new Dialog(LinkMap.this, R.style.Dialog);//去白框dialog里面具体设置样式
                dialog.setContentView(GetView());
                
                dialog.show();
                Window dialogWindow = dialog.getWindow();     
                
                
                
    //             AlertDialog.Builder builder = new Builder(LinkMap.this);
    //              builder.setView(GetView());
    //               dialog_pro=builder.create();   
    //               dialog_pro.show();
                   //定义dialog大小跟位置(默认Gravity是局中)
                    //  Window dialogWindow = dialog_pro.getWindow();     
                      // WindowManager.LayoutParams lp = dialogWindow.getAttributes();       
                      // dialogWindow.setGravity(Gravity.CENTER_VERTICAL| Gravity.TOP);
                      
                   //    lp.width = 193; //193 宽度        
                      // lp.height = 126; // 126高度
                      
                   //   dialogWindow.setAttributes(lp);
                    //   dialog_pro.setView(GetView(),0,0,0,0);//去除边框
                    
    
                      //设置窗口的大小  
                      dialogWindow.setLayout(193,126);  
    }
    
    
    //animal view
    
          public View GetView()
          {
              View view =super.getLayoutInflater().inflate(R.layout.progress,(ViewGroup) findViewById(R.id.progress_img)); 
              final  ImageView iv=(ImageView)view.findViewById(R.id.animal_img);
               iv.setImageResource(R.drawable.animal_pro);//绑定数据源
              //启动 动画,因为如果没有启动方法,它没办法自己启动
              iv.post(new Runnable() {
                    
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                    AnimationDrawable  animationDrawable=(AnimationDrawable)iv.getDrawable();//获取imageview绘画
                    animationDrawable.start();//开始绘画
                    
                    }
                });
              return view;
          }


    在要关闭的地方再dialog.dismiss一下就ok了

    Crazy Cherry:everything is possible!
  • 相关阅读:
    (CSDN 迁移) jFinal找不到或无法加载主类
    (CSDN迁移) jFinal无法启动_JFinalDemoGenerator问题解决办法
    (CSDN迁移) JAVA多线程实现-可控最大并发数线程池(newFixedThreadPool)
    (CSDN迁移)JAVA多线程实现-单线程化线程池newSingleThreadExecutor
    (CSDN迁移) JAVA多线程实现-实现Runnable接口
    (CSDN迁移)JAVA多线程实现-继承Thread
    (CSDN迁移) html中的rel属性
    通过microtask和macrotask理解Vue.nextTick()的实现
    javascript处理异步的三种方法
    git常用的基本命令
  • 原文地址:https://www.cnblogs.com/userbibi/p/2473406.html
Copyright © 2011-2022 走看看