:Android Market的 Loading效果
16lz
2021-01-23
在Android中,要实现Loading效果,一般情况下都使用ProgressDialog控件。ApiDemos/src/com/example/android/apis/view/ProgressBar3.java 提供两个demo: 仔细看了Android Market,发现却是不一样的,请看截图: 那到底如何实现呢?首先,我们创建一个布局文件, res/layout/fullscreen_loading_indicator.xml, 其内容如下: <? xmlversion = " 1.0 " encoding = " utf-8 " ?>
< LinearLayout
xmlns:android = " http://schemas.android.com/apk/res/android "
android:gravity = " center_vertical|center_horizontal "
android:orientation = " horizontal "
android:id = " @+id/fullscreen_loading_style "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent "
>
< ProgressBar
android:layout_gravity = " center_vertical "
android:layout_width = " wrap_content "
android:layout_height = " wrap_content "
style = " ?android:attr/progressBarStyleSmall "
/>
< TextView
android:id = " @+id/current_action "
android:layout_width = " wrap_content "
android:layout_height = " wrap_content "
android:layout_marginLeft = " 5.0dip "
android:text = " @+string/loading "
/>
</ LinearLayout >
< LinearLayoutxmlns:android = " http://schemas.android.com/apk/res/android "
android:orientation = " vertical " android:layout_width = " fill_parent "
android:layout_height = " fill_parent " >
< LinearLayoutandroid:orientation = " vertical "
android:id = " @+id/main_info "
android:visibility = " gone "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent " >
< TextViewandroid:layout_width = " fill_parent "
android:layout_height = " fill_parent "
android:text = " abc " ></ TextView >
</ LinearLayout >
< LinearLayoutandroid:orientation = " vertical "
android:id = " @+id/main_Loading "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent " >
< includeandroid:visibility = " visible "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent "
layout = " @layout/fullscreen_loading_style " />
</ LinearLayout >
</ LinearLayout >
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.LinearLayout;
public class myFullLoading extends Activity{
/** Calledwhentheactivityisfirstcreated. */
private LinearLayoutmLoadingLayout;
@Override
public void onCreate(BundlesavedInstanceState){
super .onCreate(savedInstanceState);
setContentView(R.layout.main);
final Handlerhandler = new Handler(){
@Override
public void handleMessage(Messagemsg){
// TODOAuto-generatedmethodstub
super .handleMessage(msg);
if (msg.what == 1 ){
mLoadingLayout = (LinearLayout)findViewById(R.id.fullscreen_loading_style);
mLoadingLayout.setVisibility(View.GONE);
LinearLayoutmMain = (LinearLayout)findViewById(R.id.main_info);
mMain.setVisibility(View.VISIBLE);
}
}
};
new Thread(){
public void run(){
for ( int i = 0 ;i < 1000 ;i ++ ){
System.out.print(i + "" );
}
Messagemsg = handler.obtainMessage( 1 , " flash " );
handler.sendMessage(msg);
}
}.start();
}
} 运行的效果为:
< LinearLayout
xmlns:android = " http://schemas.android.com/apk/res/android "
android:gravity = " center_vertical|center_horizontal "
android:orientation = " horizontal "
android:id = " @+id/fullscreen_loading_style "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent "
>
< ProgressBar
android:layout_gravity = " center_vertical "
android:layout_width = " wrap_content "
android:layout_height = " wrap_content "
style = " ?android:attr/progressBarStyleSmall "
/>
< TextView
android:id = " @+id/current_action "
android:layout_width = " wrap_content "
android:layout_height = " wrap_content "
android:layout_marginLeft = " 5.0dip "
android:text = " @+string/loading "
/>
</ LinearLayout >
然后在main.xml 把它include 进来
< LinearLayoutxmlns:android = " http://schemas.android.com/apk/res/android "
android:orientation = " vertical " android:layout_width = " fill_parent "
android:layout_height = " fill_parent " >
< LinearLayoutandroid:orientation = " vertical "
android:id = " @+id/main_info "
android:visibility = " gone "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent " >
< TextViewandroid:layout_width = " fill_parent "
android:layout_height = " fill_parent "
android:text = " abc " ></ TextView >
</ LinearLayout >
< LinearLayoutandroid:orientation = " vertical "
android:id = " @+id/main_Loading "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent " >
< includeandroid:visibility = " visible "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent "
layout = " @layout/fullscreen_loading_style " />
</ LinearLayout >
</ LinearLayout >
主程序:
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.LinearLayout;
public class myFullLoading extends Activity{
/** Calledwhentheactivityisfirstcreated. */
private LinearLayoutmLoadingLayout;
@Override
public void onCreate(BundlesavedInstanceState){
super .onCreate(savedInstanceState);
setContentView(R.layout.main);
final Handlerhandler = new Handler(){
@Override
public void handleMessage(Messagemsg){
// TODOAuto-generatedmethodstub
super .handleMessage(msg);
if (msg.what == 1 ){
mLoadingLayout = (LinearLayout)findViewById(R.id.fullscreen_loading_style);
mLoadingLayout.setVisibility(View.GONE);
LinearLayoutmMain = (LinearLayout)findViewById(R.id.main_info);
mMain.setVisibility(View.VISIBLE);
}
}
};
new Thread(){
public void run(){
for ( int i = 0 ;i < 1000 ;i ++ ){
System.out.print(i + "" );
}
Messagemsg = handler.obtainMessage( 1 , " flash " );
handler.sendMessage(msg);
}
}.start();
}
} 运行的效果为:
更多相关文章
- Android 设置图片倒影效果
- Android中按钮点击效果显示
- android开源新闻小程序、3D翻转公告效果、小说检索、Kotlin开发T
- 狂刷Android范例之5:ApiDemos主程序框架分析
- Android智能推荐、MVP架构电商应用、markdown编辑器、多种动画效
- Android 实现开关灯效果
- android 改变 listView gridView的默认点击效果
- Android 拖拽效果实现代码分享 - ORIETech
- 安卓隐藏标题栏状态栏 ,实现全屏效果