package com.wistron.StereoUI;
import android.content.Context;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup;
import android.widget.AbsoluteLayout;
import android.widget.ProgressBar;
/**
* 2D控件 ProgressBar的封裝類
* @author WangWei
*
*/
@SuppressWarnings("deprecation")
public class CSProgressBar extends CSView{
protected ProgressBar[] m_progressBars = null;
private int m_style = android.R.attr.progressBarStyleHorizontal;
public CSProgressBar(Context context) {
super(context);
m_context = context;
m_progressBars = new ProgressBar[2];
for (int i = 0; i < m_progressBars.length; i++) {
m_progressBars[i] = new ProgressBar(context,null,android.R.attr.progressBarStyleHorizontal);
}
}
/**
* 初始化CSProgressBar
* @param context
* @param style 進度條的樣式(如果設置為默認,請填寫0)
*/
public CSProgressBar(Context context,int style) {
super(context);
m_context = context;
if(style == 0){
style = android.R.attr.progressBarStyleHorizontal;
}
this.m_style = style;
m_progressBars = new ProgressBar[2];
for (int i = 0; i < m_progressBars.length; i++) {
m_progressBars[i] = new ProgressBar(context,null,m_style);
}
}
/**
* 設置控件的可見性
*/
@Override
public void setVisibility(int visibility) {
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setVisibility(visibility);
m_progressBars[1].setVisibility(visibility);
}
/**
* 設置進度條的最大進度值
* @param max
*/
public void setMax(int max) {
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setMax(max);
m_progressBars[1].setMax(max);
}
/**
* 設置控件的可用性
*/
@Override
public void setEnable(boolean enabled) {
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setEnabled(enabled);
m_progressBars[1].setEnabled(enabled);
}
@SuppressWarnings("deprecation")
@Override
public void setDimension(boolean is3d) {
super.setDimension(is3d);
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
if(m_progressBars[0].getLayoutParams() != null && m_progressBars[1].getLayoutParams() != null){
if(m_cur_width == WRAP_CONTENT || m_cur_height == WRAP_CONTENT){
m_progressBars[0].setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, m_cur_lx, m_cur_ly));
m_progressBars[1].setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, m_cur_rx, m_cur_ry));
}else{
m_progressBars[0].setLayoutParams(new AbsoluteLayout.LayoutParams(m_cur_width, m_cur_height, m_cur_lx, m_cur_ly));
m_progressBars[1].setLayoutParams(new AbsoluteLayout.LayoutParams(m_cur_width, m_cur_height, m_cur_rx, m_cur_ry));
}
m_progressBars[0].requestLayout();
m_progressBars[1].requestLayout();
}
}
@SuppressWarnings("deprecation")
@Override
public void setLocation(int x, int y) {
super.setLocation(x, y);
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
if(m_progressBars[0].getLayoutParams() != null && m_progressBars[1].getLayoutParams() != null){
if(m_cur_width == WRAP_CONTENT || m_cur_height == WRAP_CONTENT){
m_progressBars[0].setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, m_cur_lx, m_cur_ly));
m_progressBars[1].setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, m_cur_rx, m_cur_ry));
}else{
m_progressBars[0].setLayoutParams(new AbsoluteLayout.LayoutParams(m_cur_width, m_cur_height, m_cur_lx, m_cur_ly));
m_progressBars[1].setLayoutParams(new AbsoluteLayout.LayoutParams(m_cur_width, m_cur_height, m_cur_rx, m_cur_ry));
}
m_progressBars[0].requestLayout();
m_progressBars[1].requestLayout();
}
}
/**
* 設置控件的觸摸事件
*/
@Override
public boolean touchEvent(MotionEvent event) {
boolean state = false;
return state;
}
/**
* 获取控件的可见性
* @return
*/
public int getVisibility(){
int visile = View.NO_ID;
if(m_progressBars[0] == null || m_progressBars[1] == null){
visile = View.NO_ID;
}
visile = m_progressBars[0].getVisibility();
return visile;
}
/**
* 將控件添加到layout中去
*/
@SuppressWarnings("deprecation")
@Override
public void addToLayout(ViewGroup alayout) {
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
if(alayout == null){
return;
}
//設置控件在屏幕中顯示的位置
if(m_cur_width == WRAP_CONTENT || m_cur_height == WRAP_CONTENT){
m_progressBars[0].setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, m_cur_lx, m_cur_ly));
m_progressBars[1].setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, m_cur_rx, m_cur_ry));
}else{
m_progressBars[0].setLayoutParams(new AbsoluteLayout.LayoutParams(m_cur_width, m_cur_height, m_cur_lx, m_cur_ly));
m_progressBars[1].setLayoutParams(new AbsoluteLayout.LayoutParams(m_cur_width, m_cur_height, m_cur_rx, m_cur_ry));
}
alayout.addView(m_progressBars[0]);
alayout.addView(m_progressBars[1]);
}
/**
* 設置進度條的進度
* @param process
*/
public void setProgress(int process){
if(m_progressBars[0] == null ||m_progressBars[1] == null){
return;
}
m_progressBars[0].setProgress(process);
m_progressBars[1].setProgress(process);
}
/**
* 設置進度條的背景
* @param resid
*/
public void setBackgroundResource(int resid){
if(m_progressBars[0] == null ||m_progressBars[1] == null){
return;
}
m_progressBars[0].setBackgroundResource(resid);
m_progressBars[1].setBackgroundResource(resid);
}
/**
* 設置進度條的背景
* @param resid
*/
public void setBackgroundResource(int residL, int residR){
if(m_progressBars[0] == null ||m_progressBars[1] == null){
return;
}
m_progressBars[0].setBackgroundResource(residL);
m_progressBars[1].setBackgroundResource(residR);
}
/**
* 設置進度條的最小寬度
* @param minWidth
*/
public void setMinimumWidth(int minWidth){
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setMinimumWidth(minWidth);
m_progressBars[1].setMinimumWidth(minWidth);
}
/**
* 設置進度條的最小高度
* @param minHight
*/
public void setMinimumHeight(int minHight){
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setMinimumHeight(minHight);
m_progressBars[1].setMinimumHeight(minHight);
}
/**
* 设置控件的ID
* @param id
*/
public void setId(int id) {
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setId(id);
}
/**
* 设置控件内部的内容与控件的边距
*/
@Override
public void setPadding(int left, int top, int right, int bottom) {
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setPadding(left, top, right, bottom);
m_progressBars[1].setPadding(left, top, right, bottom);
}
public void setLayoutParams(LayoutParams lParams, LayoutParams rParams){
if(m_progressBars[0] == null || m_progressBars[1] == null){
return;
}
m_progressBars[0].setLayoutParams(lParams);
m_progressBars[1].setLayoutParams(rParams);
}
@Override
public Object save() {
// TODO Auto-generated method stub
return null;
}
@Override
public void restore(Object object) {
// TODO Auto-generated method stub
}
}