android dialog去白色边框,设置边框大小,加载gif动画
2012-04-27 13:30 omgee 阅读(2027) 评论(0) 编辑 收藏 举报之前写过一个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!