版本更新时Activity作为对话框形式弹出进度条
2015-09-02 18:25
603 查看
首先:自定义一个自己想要的主题
如: <style name="Theme.FloatActivity" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/download_vision_background</item>
</style>
然后:manifest.xml文件注册引用
如:android:theme="@style/Theme.FloatActivity"
所建的shape文件位于drawable文件下download_vision_background.xml
如:<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dip" />
<solid android:color="#ED4D4D" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
布局文件使用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/download_vision_background" >
<RelativeLayout
android:id="@+id/rl_loo"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="版本更新下载中..."
android:textColor="#000000"
android:textSize="15sp" />
</RelativeLayout>
<ProgressBar
android:id="@+id/alert_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="15dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/rl_loo"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="8dp" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/alert_bar" >
<TextView
android:id="@+id/alert_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:text="0%"
android:textColor="#000000" />
</RelativeLayout>
</RelativeLayout>
代码设置其所占屏幕的宽度
setTitleColor(Color.BLACK);
setFinishOnTouchOutside(false);//屏幕以外不可点击
Window window = ProgressDialogActivity.this.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
Display d = window.getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
d.getMetrics(outMetrics);
lp.width = (int) (outMetrics.widthPixels * 0.80);
this.getWindow().setAttributes(lp);
如: <style name="Theme.FloatActivity" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/download_vision_background</item>
</style>
然后:manifest.xml文件注册引用
如:android:theme="@style/Theme.FloatActivity"
所建的shape文件位于drawable文件下download_vision_background.xml
如:<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dip" />
<solid android:color="#ED4D4D" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
布局文件使用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/download_vision_background" >
<RelativeLayout
android:id="@+id/rl_loo"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="版本更新下载中..."
android:textColor="#000000"
android:textSize="15sp" />
</RelativeLayout>
<ProgressBar
android:id="@+id/alert_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="15dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/rl_loo"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="8dp" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/alert_bar" >
<TextView
android:id="@+id/alert_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:text="0%"
android:textColor="#000000" />
</RelativeLayout>
</RelativeLayout>
代码设置其所占屏幕的宽度
setTitleColor(Color.BLACK);
setFinishOnTouchOutside(false);//屏幕以外不可点击
Window window = ProgressDialogActivity.this.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
Display d = window.getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
d.getMetrics(outMetrics);
lp.width = (int) (outMetrics.widthPixels * 0.80);
this.getWindow().setAttributes(lp);
相关文章推荐
- nginx之nginx部署
- Windows与Ubuntu之间共享文件
- 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)
- C++模板元编程 - 1 基本数据类型和运算
- 断舍离——有时间的话
- Ionic之搭建开发环境,并创建工程
- Android学习笔记.IDE使用eclipse还是studio
- Python Tkinter Checkbutton的使用
- Javascript变量和值之间的比较
- 快速排序
- Linux权限管理之ACL权限
- STM32F4使用硬件SPI驱动ADS8322
- Java基础-----基础小结
- 【转】 定义模板和服务
- 协变(Covariance)与逆变(Contravariance)
- 操作系统重装后一系列软件重装
- 快速求幂二分算法
- Android Location服务之Geocoder
- eval解析
- centos创建ftp方法,个人经验