那就是自己画的进度吧,不是用系统的progressbar。
自己定义一个view,然后设置宽高,ondraw里去根据进度绘制。bitmap可以指定绘制的区域。起个handler一点一点绘制出来就可以了
自己定义一个view,然后设置宽高,ondraw里去根据进度绘制。bitmap可以指定绘制的区域。起个handler一点一点绘制出来就可以了
解决方案 »
- 请教:NDK环境,动态调用SO库的问题
- CropImage中为什么使用CountDownLatch难道不阻塞UI线程吗?
- 应用程序退出不了,应用程序中包括线程和服务
- 将代码放入framework里面编译?
- android TabHost 点击tab切换不了
- 网络图片读取错误。求大神解答
- android3.0新增API onDragListener ,由于2.3没有这个API,如何在2.3如何实现?也就是在2.3上如何实现拖动?
- 淘宝、京东之类的电商APP架构问题
- 求助~!线程里不能MediaRecorder.start()
- 相同代码,一台模拟器正常运行,一台模拟器报空指针
- Andrion问题
- youtube中采用json解析如何得到视频的所有评语?
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ProgressBar;public class ProgressBarTest extends Activity
{
/** Called when the activity is first created. */
private ProgressBar m_ProgressBar;
private ProgressBar m_ProgressBar2;
private Button mButton01;
protected static final int GUI_STOP_NOTOFIER = 0x108;
protected static final int GUI_THREADING_NOTOFIER = 0x109;
public int intCounter = 0;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//设置窗口模式,因为需要显示进度条在标题栏
requestWindowFeature(Window.FEATURE_PROGRESS);
setProgressBarVisibility(true);
setContentView(R.layout.main);
//取得ProgressBar
m_ProgressBar = (ProgressBar)findViewById(R.id.ProgressBar01);
m_ProgressBar2 = (ProgressBar)findViewById(R.id.ProgressBar02);
mButton01 = (Button)findViewById(R.id.myButton);
m_ProgressBar.setIndeterminate(false);
m_ProgressBar2.setIndeterminate(false);
//当按钮按下时开始执行
mButton01.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
//设置ProgressBar为可见状态
m_ProgressBar.setVisibility(View.VISIBLE);
m_ProgressBar2.setVisibility(View.VISIBLE);
//设置ProgressBar的最大值
m_ProgressBar.setProgress(0);
m_ProgressBar2.setProgress(0);
//通过线程来改变ProgressBar的值
new Thread(new Runnable()
{
public void run()
{
for(int i =0; i < 10; i++)
{
try
{
intCounter = (i + 1)*20;
Thread.sleep(1000);
if(i == 4)
{
Message m = new Message();
m.what = ProgressBarTest.GUI_STOP_NOTOFIER;
ProgressBarTest.this.MyMessageHandler.sendMessage(m);
break;
}
else
{
Message m = new Message();
m.what = ProgressBarTest.GUI_THREADING_NOTOFIER;
ProgressBarTest.this.MyMessageHandler.sendMessage(m);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
} ).start();
}
});
}
Handler MyMessageHandler = new Handler()
{
public void handleMessage (Message msg)
{
switch (msg.what)
{
//ProgressageBar已经是最大值
case ProgressBarTest.GUI_STOP_NOTOFIER:
m_ProgressBar.setVisibility(View.GONE);
m_ProgressBar2.setVisibility(View.GONE);
Thread.currentThread().interrupt();
break;
case ProgressBarTest.GUI_THREADING_NOTOFIER:
if(!Thread.currentThread().isInterrupted())
{
m_ProgressBar.setProgress(intCounter);
m_ProgressBar2.setProgress(intCounter);
setProgress(intCounter*100);
setSecondaryProgress(intCounter*100);
}
break;
}
super.handleMessage(msg);
}
};
}有些东西自己写。