android 點擊重新加載界面設計


在項目中經常會遇到這樣的場合,用戶點擊了一個界面后要提示等待加載,最后有可能顯示加載失敗,點擊屏幕再重試加載。下面是該實例的代碼:

layout: loading.xml

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center_vertical|center_horizontal"
                android:background="#eee"
                android:id="@+id/loading_error_screen"
        >

    <RelativeLayout
            android:layout_width="wrap_content" android:layout_height="wrap_content">

        <ImageView
                android:id="@+id/loading_img"
                android:layout_centerHorizontal="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/loading_animator"
                />

        <TextView
                android:text="正在加載中..."
                android:textSize="18sp"
                android:layout_below="@id/loading_img"
                android:layout_marginTop="12dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
    </RelativeLayout>

</RelativeLayout>

 

layout: loading_error.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center_vertical|center_horizontal"
                android:background="#eee"
                android:id="@+id/loading_error_screen"
                android:onClick="reloadContent"
        >

    <RelativeLayout
            android:layout_width="wrap_content" android:layout_height="wrap_content">

        <ImageView
                android:layout_centerHorizontal="true"
                android:id="@+id/loading_error_img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/wb_request_loading_error"
                />

        <TextView
                android:text="加載失敗,請點擊屏幕重試"
                android:textSize="18sp"
                android:layout_below="@id/loading_error_img"
                android:layout_marginTop="8dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
    </RelativeLayout>

</RelativeLayout>

 

Java: 

package com.example.basicUI;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

/**
 * 作者:Heyiyong,2014年2月1日23:53:18
 */
public class LoadingActivity extends Activity {
    private ImageView imageView;
    AnimationDrawable loadingDrawable;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //模擬加載數據
        loadContent();
    }

    /**
     * 加載數據
     */
    private void loadContent() {
        setContentView(R.layout.loding);
        //顯示加載的那個動畫
        imageView = (ImageView) findViewById(R.id.loading_img);
        loadingDrawable = (AnimationDrawable) imageView.getBackground();
        loadingDrawable.start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                //模擬加載數據
                try {
                    Thread.sleep(2200);
                } catch (InterruptedException e) {
                }
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        setContentView(R.layout.loading_error);
                    }
                });
            }
        }).start();
    }

    /**
     * 加載失敗的點擊事件
     */
    public void reloadContent(View view) {
        loadContent();
    }
}

點擊下載源代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM