`
学不止
  • 浏览: 237954 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

android自定义ProgressDialog

阅读更多

有些需求为了与软件风格保持一致需要自定义控件。progressdialog重写如下:

public class MofficeProgressDialog extends Dialog
{
    LayoutInflater inflater;
    
    Context context;
    
    TextView titleText;
    
    static MofficeProgressDialog mofficeProgressDialog = null;
    
    TextView message;
    
    ImageView diverse;
    
    public MofficeProgressDialog(Context context)
    {
        super(context);
        this.context = context;
    }
    
    public static MofficeProgressDialog create(Context context)
    {
        mofficeProgressDialog = new MofficeProgressDialog(context, null);
        
        return mofficeProgressDialog;
        
    }
    
    public MofficeProgressDialog(Context context, AttributeSet attr)
    {
        super(context, R.style.CustomProgressDialog);
        this.context = context;
        setContentView(R.layout.mofficeprogressdialog);
       // inflater = (LayoutInflater)context.getSystemService(Service.LAYOUT_INFLATER_SERVICE);
    }
    
    public MofficeProgressDialog setTitle(String title)
    {
        titleText = (TextView)mofficeProgressDialog.findViewById(R.id.title);
        if (!StringUtils.isEmpty(title.toString()))
        {
            titleText.setVisibility(View.VISIBLE);
            titleText.setText(title.toString());
            diverse = (ImageView)mofficeProgressDialog.findViewById(R.id.dirves);
            diverse.setVisibility(View.VISIBLE);
        }
        return mofficeProgressDialog;
        
    }
    
    public MofficeProgressDialog setTitleById(int titleId)
    {
        titleText = (TextView)mofficeProgressDialog.findViewById(R.id.title);
        String titleStr = context.getResources().getString(titleId);
        if (!StringUtils.isEmpty(titleStr))
        {
            titleText.setVisibility(View.VISIBLE);
            titleText.setText(titleStr);
            diverse = (ImageView)inflater.inflate(R.layout.mofficeprogressdialog, null).findViewById(R.id.dirves);
            diverse.setVisibility(View.VISIBLE);
        }
        return mofficeProgressDialog;
    }
    
    public MofficeProgressDialog setMessageById(int messageId)
    {
        message = (TextView)mofficeProgressDialog.findViewById(R.id.message);
        String titleStr = context.getResources().getString(messageId);
        if (!StringUtils.isEmpty(titleStr))
        {
            message.setText(titleStr);
        }
        return mofficeProgressDialog;
    }
    
    public MofficeProgressDialog setMessage(String messages)
    {
        message = (TextView)mofficeProgressDialog.findViewById(R.id.message);
        if (!StringUtils.isEmpty(messages.toString()))
        {
            message.setText(messages.toString());
        }
        return mofficeProgressDialog;
    }
    
}

 mofficeprogressdialog.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:background="@drawable/linearlayout_selector" android:layout_height="fill_parent">
	<TextView android:id="@+id/title" android:layout_width="fill_parent" 
	android:textSize="15sp" android:textColor="#000000" android:layout_marginLeft="5dp"
	 android:visibility="gone"
		android:layout_height="wrap_content" />
	<ImageView android:visibility="invisible" android:background="@drawable/dialog_diverse"
		android:layout_width="fill_parent" android:layout_height="1dp"
		android:id="@+id/dirves"></ImageView>
	<LinearLayout android:layout_width="fill_parent" 
		android:layout_height="wrap_content" android:orientation="horizontal">
		<LinearLayout android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:layout_marginRight="5dp"
			 android:layout_marginLeft="10dp" 
			android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
			android:orientation="horizontal">
			<com.hanwei.demo.MofficeProgressBar
				android:layout_width="wrap_content" android:layout_height="wrap_content"
				android:layout_gravity="center" />
		</LinearLayout>
		<TextView android:id="@+id/message" android:layout_width="wrap_content"
			android:singleLine="true" android:layout_height="wrap_content"
			android:textSize="13sp" android:textColor="#000000"
			android:text="@string/hello" android:layout_gravity="center_vertical" />
	</LinearLayout>
</LinearLayout>

 其中自定义的progressBar用之前提到的自定义控件。

分享到:
评论

相关推荐

    android 自定义ProgressDialog对话框

    本文将深入探讨如何在Android中自定义ProgressDialog对话框。 首先,要创建自定义ProgressDialog,我们需要继承自`DialogFragment`而不是直接使用`ProgressDialog`类。`DialogFragment`是Android推荐的处理对话框的...

    android自定义ProgressDialog样式

    android自定义ProgressDialog样式详解,一分钟教会你如何自定义android样式。

    Android 自定义progressDialog实现

    在Android开发中,自定义`ProgressDialog`是一种常见的需求,它允许开发者根据应用的UI风格定制加载提示界面。本文将深入探讨如何实现一个自定义的`ProgressDialog`,并结合源码和工具来创建一个符合设计需求的加载...

    Android 自定义ProgressDialog实例

    在"Android 自定义ProgressDialog实例"这个主题中,我们将探讨如何实现两种自定义ProgressDialog的方法。 首先,我们需要了解ProgressDialog的基本使用。它有两种形式:一种是带圆形进度条的,另一种是不带进度条的...

    Android自定义ProgressDialog

    要自定义ProgressDialog,我们通常需要重写其主题或通过代码设置属性。可以通过修改`styles.xml`文件中的主题来改变ProgressDialog的背景、颜色、字体等。例如,你可以创建一个新的主题,如`@style/...

    Android中自定义ProgressDialog实现加载滚动条效果,例如显示“请稍后……”

    下面我们将深入探讨如何在Android中自定义ProgressDialog,实现加载滚动条效果。 首先,我们需要创建一个新的布局文件,比如`custom_progress_dialog.xml`,来定义自定义对话框的视图结构。在这个布局文件中,我们...

    android 自定义progressdialog

    在Android开发中,自定义ProgressDialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求定制加载进度对话框。在给定的标题“android 自定义progressdialog”中,我们可以了解到这个话题是关于如何在...

    android ProgressDialog 自定义样式

    本篇文章将详细讲解如何在Android中自定义ProgressDialog,以及如何实现带加载图片和文字说明的功能。 首先,我们需要创建一个新的类来继承自Dialog,因为ProgressDialog本质上就是Dialog的一个子类。这个类将作为...

    android 自定义组合progressdialog进度条

    android 自定义组合progressdialog进度条,方便你的使用............................................................................................

    android 自定义progressDialog实现

    本篇将详细介绍如何在Android中实现自定义ProgressDialog。 首先,我们要理解ProgressDialog的基本使用。ProgressDialog继承自Dialog,展示为一个带有进度条的对话框。通常有两种模式:indeterminate(不确定进度)...

    android自定义ProgressDialog加载效果

    Android 自定义 ProgressDialog 加载效果 Android 自定义 ProgressDialog 加载效果是指在 Android 应用程序中对 ProgressDialog 的自定义加载效果的实现。ProgressDialog 是 Android 提供的一个对话框组件,用于...

    Android 自定义ProgressDialog

    总结起来,自定义ProgressDialog是提升Android应用用户体验的重要手段。通过创建独特的布局和定制的逻辑,开发者可以打造出符合应用风格且功能强大的加载指示器。在实际开发中,要确保自定义的ProgressDialog不仅...

    Android自定义ProgressDialog加载图片

    本篇文章主要探讨如何在Android中自定义ProgressDialog,以创建更加吸引用户的加载界面。 首先,我们来看一下默认的系统加载框的使用方法。通常,我们可以创建一个新的ProgressDialog对象,然后设置其属性,如是否...

    Android自定义progressDialog

    因此,自定义ProgressDialog就显得尤为重要。本篇将详细介绍如何在Android中创建一个自定义的、美观的ProgressDialog。 首先,我们需要创建一个新的Java类来继承自`DialogFragment`,因为`DialogFragment`是Android...

    Android自定义ProgressDialog进度等待框

    Android本身已经提供了ProgressDialog进度等待框,使用该Dialog,我们可以为用户提供更好的体验:在网络请求时,弹出此框等待网络数据。 不过,既然是为了提高用户体验,我们肯定希望该Dialog能更加炫酷,让用户看着...

    自定义ProgressDialog

    总之,自定义ProgressDialog是Android开发中的一个重要技巧,它允许开发者在保持应用一致性的同时,提供更加个性化和引人入胜的用户体验。通过学习和实践,开发者可以更好地掌握这一技能,为用户提供更优质的交互...

    简单便于集成的自定义ProgressDialog

    自定义ProgressDialog可以使开发者根据项目需求定制对话框的样式、功能和交互,使其更符合品牌形象或者提供更好的用户体验。本教程将详细介绍如何创建并集成一个简单易用且可扩展的自定义ProgressDialog。 首先,...

Global site tag (gtag.js) - Google Analytics