`

自定义Loading Dialog

 
阅读更多
好久没有更新blog,这段时间忙着换工作的事情,现在赶紧的拾掇起来:)
今天总结了个旋转的Loading效果的小知识点,速度写上来:
还是传统的贴代码:
这个类就是简单的布局一个View显示loading效果.
CustomerLoading.java:
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;

public class CustomerLoading extends Activity {

	private LinearLayout mLoad;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		mLoad = (LinearLayout) findViewById(R.id.mLoad);
		mLoad.setGravity(android.view.Gravity.CENTER);

		LoadingView mLoadView = new LoadingView(this);
		mLoadView.setDrawableResId(R.drawable.icon10);
		mLoad.addView(mLoadView);
		TextView alert = new TextView(this);
		alert.setText("加载中...");
		mLoad.addView(alert);
		ViewHandler.creteProgressDialog(this, "loading");
	}
}


这个类应该是这个知识点的重点,通过一个Timer来重画View图像,达到转动效果.
LoadingView.java:
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.View;

public class LoadingView extends View {

	private Matrix mFgMatrix;
	private Bitmap mFgBitmap;

	public LoadingView(Context context) {
		super(context);
	}

	public LoadingView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public void setDrawableResId(int iconResId) {
		mFgMatrix = new Matrix();
		mFgBitmap = BitmapFactory.decodeResource(getResources(), iconResId);
		myHandler.sendEmptyMessage(0);
		onMeasure(mFgBitmap.getWidth(), mFgBitmap.getHeight());
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		setMeasuredDimension(mFgBitmap.getWidth(), mFgBitmap.getHeight());
	}

	@Override
	protected void onDraw(Canvas canvas) {
		canvas.drawBitmap(mFgBitmap, mFgMatrix, null);
	}

	private Handler myHandler = new Handler() {
		public void handleMessage(android.os.Message msg) {
			mFgMatrix.postRotate(-10f, mFgBitmap.getWidth() / 2f, mFgBitmap
					.getHeight() / 2f);
			invalidate();
			myHandler.sendEmptyMessageDelayed(msg.what, 20);
		};
	};
}


这个类主要是实现一个ProgressDialog效果的进度条框.
ViewHandler.java:
import android.app.ProgressDialog;
import android.content.Context;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ViewHandler {

	public static ProgressDialog creteProgressDialog(Context context,
			String text) {
		final ProgressDialog dlg = new ProgressDialog(context);
		dlg.show();
		dlg.setContentView(R.layout.loading);
		LinearLayout root = (LinearLayout) dlg
				.findViewById(R.id.progressDialog);
		root.setGravity(android.view.Gravity.CENTER);

		LoadingView mLoadView = new LoadingView(context);
		mLoadView.setDrawableResId(R.drawable.icon10);
		root.addView(mLoadView);
		TextView alert = new TextView(context);
		alert.setText(text);
		root.addView(alert);
		return dlg;
	}

}


最后为了照顾某些懒人,附上工程:
分享到:
评论

相关推荐

    Android自定义loading Dialog

    ProgressBar progressBar = (ProgressBar) loadingDialog.getDialog().findViewById(R.id.progress_bar); progressBar.setColorSchemeColors(Color.BLUE, Color.RED); ``` 4. **关闭Dialog**: - 当加载完成...

    自定义对话框LoadingDialog和Toast

    本篇将详细介绍如何创建具有Gif动画功能的自定义LoadingDialog和Toast。 一、自定义Dialog 自定义Dialog允许开发者根据应用的风格和需求来设计对话框的布局和功能。在Android中,我们可以继承`AlertDialog.Builder...

    自定义dialog

    在给定的标题“自定义dialog”和描述“自定义loadingDialog,重写系统dialog实现自定义”中,我们可以看出这个话题主要关注如何根据需求创建一个个性化的加载对话框(`LoadingDialog`)。 `Dialog` 是 Android SDK ...

    简单自定义透明loading dialog

    本教程将详细讲解如何创建一个简单的自定义透明Loading Dialog。 首先,我们需要理解“透明”和“Loading”的概念。透明通常指的是对话框的背景可以透过,显示底层的Activity内容。而“Loading”则是指对话框中显示...

    自定义加载框LoadingDialog

    在Android开发中,自定义加载框(LoadingDialog)是一个常见的需求,它用于向用户展示应用程序正在进行后台处理或数据加载的状态,提升用户体验。本资源提供的就是一个基于动画和自定义style实现的自定义加载框实例...

    LoadingDialog

    "LoadingDialog"是一种在Android应用开发中常见的用户界面元素,用于在执行耗时操作(如数据加载、网络请求等)时向用户提供反馈,通常显示一个旋转的菊花图标和简短的文字提示,告知用户系统正在处理任务。...

    Android自定义Dialog 界面比较好看

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据项目需求创建具有独特设计和功能的对话框,以提供更好的用户体验。标题“Android自定义Dialog 界面比较好看”表明我们将探讨如何创建一个视觉上...

    Android 自定义全局Loading页面

    本篇文章将深入探讨如何在Android中自定义全局Loading页面,重点关注使用ProgressBar和AVLoadingIndicatorView两种方法。 首先,我们来讨论第一种实现方式:使用ProgressBar控件。ProgressBar是Android SDK内建的一...

    安卓自定义加载框 Loding Dialog 颜色内置图

    在给定的链接中,博客文章“http://www.cnblogs.com/Mr-Wu/p/4187934.html”提供了创建自定义Loading Dialog的实例。虽然链接无法直接访问,但我们可以基于常见的步骤进行解析: 1. **创建布局资源**:首先,我们...

    自定义Dialog 正在加载中....

    "自定义Dialog 正在加载中...."这个标题暗示我们将讨论如何创建一个自定义的Dialog,特别是在Android应用中展示加载进度的场景。 在Android原生库中,系统提供了多种Dialog样式,如AlertDialog、ProgressDialog等,...

    很好android自定义dialog加载转圈等待,适合初学,透明+正常两种主题

    在Android开发中,自定义Dialog是一种常见的需求,用于提供一种用户交互的方式,通常用来显示一些临时的通知或进行一些简短的操作。在这个主题中,我们主要关注如何创建一个自定义的加载等待Dialog,它包括透明和...

    自定义Dialog 显示正在加载动画效果 progressDialog

    在Android开发中,自定义Dialog是一种常见的用户交互方式,它能提供更为丰富的界面展示和功能扩展,以满足特定的应用场景需求。本篇我们将深入探讨如何创建一个自定义的Dialog,使其在显示时不会使Activity背景变暗...

    自定义不带文字的LoadingDialog,旋转的菊花图案

    本项目着重讲解如何自定义一个不带文字的旋转菊花图案(Spinner)的Loading Dialog,并结合ButterKnife库进行控件的绑定和事件监听。 首先,我们来了解一下什么是Loading Dialog。Loading Dialog是Android中的一种...

    Android Dialog中加载GIF

    MyLoadingDialog loadingDialog = new MyLoadingDialog(this); loadingDialog.show(); loadingDialog.loadGif(); // 在显示Dialog后加载GIF ``` 6. **处理生命周期**:记得在适当的时候取消加载(例如在Dialog关闭时...

    安卓源码+ProgressDialog、LoadingDialog+用于加载页面时的进度条或者加载框加载

    该项目通过使用两种不同的方法来实现了 ProgressDialog 的功能,又在项目中集成了自定义的 LoadingDialog 供大家选择,赶快下载起来吧。 为了让大家方便下载,所以只需要一个积分就可以了,要是大家觉得积分还是有点...

    简单实用自定义加载dialog

    在Android开发中,自定义加载对话框(Loading Dialog)是一种常见的用户界面元素,它用于向用户提供反馈,表明应用正在进行后台处理或数据加载。本篇将深入探讨如何创建一个简单实用的自定义加载对话框,以及它在...

    自定义dialog带有计时器的Alertdialog仿iosdialog

    在Android开发中,自定义对话框(Dialog)是一种常见的需求,它可以提供更加丰富和个性化的用户体验。本项目针对iOS风格的对话框进行了仿制,并且加入了计时器功能,使得开发者可以直接调用,无需繁琐的自定义过程。...

    Android loadingdialog2

    在Android开发中,"loadingdialog"通常指的是一个自定义的对话框组件,它在应用程序执行耗时操作(如网络请求、数据库操作等)时显示,为用户提供反馈,表明应用正在处理数据并请求用户耐心等待。这个组件对于提升...

Global site tag (gtag.js) - Google Analytics