Android小程序(新手)

Jaly1991 2010-11-21 06:08:43
就是做一个进度条后面有个背景图片的那种。
刚学Android
...全文
179 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
June1991 2010-11-23
  • 打赏
  • 举报
回复
package mars.ProgressBarTest;

import android.app.Activity;
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);
}
};
}

有些东西自己写。
Andy韩 2010-11-22
  • 打赏
  • 举报
回复
这中特殊的要求只能是自己自定义的View。关于自定义View的方法,去网上查查,有很多的。。
纠结的木棉花 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhq56030207 的回复:]

http://download.csdn.net/source/2695755
[/Quote]http://download.csdn.net/source/2626708
dinjay 2010-11-21
  • 打赏
  • 举报
回复
那就是自己画的进度吧,不是用系统的progressbar。
自己定义一个view,然后设置宽高,ondraw里去根据进度绘制。bitmap可以指定绘制的区域。起个handler一点一点绘制出来就可以了

80,488

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧