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用之前提到的自定义控件。

猜你喜欢

转载自hw-hanwei-126-com.iteye.com/blog/1618540