qprogressdialogg这个控件,怎么改背景色

11:55 提问
如何用代码改变进度条的颜色?
我在应用程序中设置一个水平的进度条,现在想改变这个进度条的颜色,我不用XML,用代码如何实现呢?
按赞数排序
&layer-list xmlns:android="/apk/res/android"&
&item android:id="@android:id/background"&
&corners android:radius="5dip" /&
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
&item android:id="@android:id/secondaryProgress"&
&corners android:radius="5dip" /&
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
android:id="@android:id/progress"
android:radius="5dip" /&
android:startColor="@color/progress_start"
android:endColor="@color/progress_end"
android:angle="270" /&
&/layer-list&
ProgressDialog pd=new ProgressDialog(this);
pd.setProgressDrawable(getResources().getDrawable(id));
android:id="@+id/seekBar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxHeight="8dp"
android:minHeight="8dp"
android:progressDrawable="@drawable/your_style"
android:thumb="@drawable/your_style" /&
我之前遇到的这个问题是用下面这个代码解决的。
progressDialog.setMessage(
Html.fromHtml("&font color='white'&" + Message + "&/font&"));
&item name="android:indeterminateOnly"&true&/item&
&item name="android:indeterminateDrawable"&@android:drawable/progress_medium_white&/item&
&item name="android:indeterminateBehavior"&repeat&/item&
&item name="android:indeterminateDuration"&3500&/item&
&item name="android:minWidth"&48dip&/item&
&item name="android:maxWidth"&48dip&/item&
&item name="android:minHeight"&48dip&/item&
&item name="android:maxHeight"&48dip&/item&
&item name="android:indeterminateOnly"&true&/item&
&item name="android:indeterminateDrawable"&@android:drawable/progress_medium_white&/item&
&item name="android:indeterminateBehavior"&repeat&/item&
&item name="android:indeterminateDuration"&3500&/item&
&item name="android:minWidth"&48dip&/item&
&item name="android:maxWidth"&48dip&/item&
&item name="android:minHeight"&48dip&/item&
&item name="android:maxHeight"&48dip&/item&
16834关注|1966收录
其他相似问题Android中如何设置ProgressDialog的颜色和背景_百度知道
Android中如何设置ProgressDialog的颜色和背景
String.xml 文件,progressDialog是继承与Dialog,先设置一下progressDialog的风格,设置你想要的背景和颜色: & & & &&style name=&CustomDialog& parent=&@android:style/Theme.Dialog&&&&&&&&item name=&android:windowFrame&&@null&/item&&&&&&&&&&&item name=&android:windowIsFloating&&true&/item&&& & & &item name=&android:windowContentOverlay&&@null&/item&&&&&&&&&&&item name=&android:windowAnimationStyle&&@android:style/Animation.Dialog&/item&&& & & &item name=&android:windowSoftInputMode&&stateUnspecified|adjustPan&/item&&&&&&&/style&&&&&&&&&&&&&&style name=&CustomProgressDialog& parent=&@style/CustomDialog&&&& & & &item name=&android:windowBackground&&@android:color/transparent&/item&&&&&&&&&&&item name=&android:windowNoTitle&&true&/item&&& &&/style&2.customprogressdialog.xml文件,定义自己的布局,由于我的需求只需要一个进度条以及一串显示的内容,所以布局比较接单&?xml version=&1.0& encoding=&utf-8&?&&&LinearLayout&&&android:layout_width=&fill_parent&&&&android:layout_height=&fill_parent&&&android:orientation=&horizontal&&&&&&&&ImageView&&&&&&&&&android:id=&@+id/loadingImageView&&&&&&&&&&android:layout_width=&wrap_content&&& & & &android:layout_height=&wrap_content&&& & & android:background=&@anim/progress_round&/&&&&&&&TextView&& & & &android:id=&@+id/id_tv_loadingmsg&&& & & &android:layout_width=&wrap_content&&& & & &android:layout_height=&wrap_content&&& & & &android:layout_gravity=&center_vertical&&&&&&&&&&android:textSize=&20dp&/&&&/LinearLayout&3.progress_round.xml文件.这个文件为了实现转动的效果,循环显示这些图片。&?xml version=&1.0& encoding=&utf-8&?&&&animation-list&& android:oneshot=&false&&&&&&&&item android:drawable=&@drawable/progress_1& android:duration=&200&/&&&&&&&item android:drawable=&@drawable/progress_2& android:duration=&200&/&&& &&item android:drawable=&@drawable/progress_3& android:duration=&200&/&&&&&&&item android:drawable=&@drawable/progress_4& android:duration=&200&/&&&&&&&item android:drawable=&@drawable/progress_5& android:duration=&200&/&&&&&&&item android:drawable=&@drawable/progress_6& android:duration=&200&/&&&&&&&item android:drawable=&@drawable/progress_7& android:duration=&200&/&&&&&&&item android:drawable=&@drawable/progress_8& android:duration=&200&/&&&/animation-list&4.CustomProgressDialog.java文件,这个是就是我们最终需要使用的progressDialog了。public class CustomProgressDialog&extends Dialog {&&&&private Context context =&&&&&private static CustomProgressDialog customProgressDialog =&&&&&&&&&&public CustomProgressDialog(Context context){&&&&&&&&super(context);&&&&&&&&this.context =&&&&}&&&&&&&&&public CustomProgressDialog(Context context,&int theme) {&&&&&&&&super(context, theme);&&&&}&&&&&&&&&public static CustomProgressDialog createDialog(Context context){&&&&&&&&customProgressDialog =&new CustomProgressDialog(context,R.style.CustomProgressDialog);&&&&&&&&customProgressDialog.setContentView(R.layout.customprogressdialog);&&&&&&&&customProgressDialog.getWindow().getAttributes().gravity = Gravity.CENTER;&&&&&&&&&&&&&&&&&return customProgressD&&&&}&&&&&&public void onWindowFocusChanged(boolean hasFocus){&&&&&&&&&&&&&&&&&if (customProgressDialog ==&null){&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&ImageView imageView = (ImageView) customProgressDialog.findViewById(R.id.loadingImageView);&&&&&&&&AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();&&&&&&&&animationDrawable.start();&&&&}&& &*&&&&&* [Summary]&&&&&*&&&&&& setTitile 标题&&&&&* @param strTitle&&&&&* @return&&&&&*&&&&&*/&&&&public CustomProgressDialog setTitile(String strTitle){&&&&&&&&return customProgressD&&&&}&&&&&&&&&/**&&&&&*&&&&&* [Summary]&&&&&*&&&&&& setMessage 提示内容&&&&&* @param strMessage&&&&&* @return&&&&&*&&&&&*/&&&&public CustomProgressDialog setMessage(String strMessage){&&&&&&&&TextView tvMsg = (TextView)customProgressDialog.findViewById(R.id.id_tv_loadingmsg);&&&&&&&&&&&&&&&&&if (tvMsg !=&null){&&&&&&&&&&&&tvMsg.setText(strMessage);&&&&&&&&}&&&&&&&&&&&&&&&&&return customProgressD&&&&}}
其他类似问题
为您推荐:
提问者采纳
最简单的用setView()方法自定义的xml文件放进去.xml里想设置颜色背景什么都可以么
..其实我也没懂你的意思,你要设置那个颜色和背景,都是系统的,方法里只有设置标题和图标还有文字,要定义颜色和背景,要么重写这个,要么就自定义一个View放进去么
对、就是自定义View这块我不太懂、虚心请教、
自定义View实际上我觉得一般继承View,根据需要重写ondraw(),或者onMeasure()方法,但是如果你的需要只是改颜色和背景,其实不用自定义,我上面说的是你写一个xml.然后比如你是Linerlayout整体,你就把这个Linerlayout的ID获得,然后用ProgressDialog那个控件去setView..
提问者评价
您可能关注的推广
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁------解决方案--------------------http://bbs.csdn.net/topics/------解决方案--------------------自己重绘吧,这里有一个重绘进度条的,
/red-fox/archive//2814933.html------解决方案--------------------/zh-cn/library/c4syt4ss(v=vs.90).aspx
给你找了个例子,你改改看
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有请问progressDialog这个控件,怎么改背景色?
[问题点数:40分]
请问progressDialog这个控件,怎么改背景色?
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年8月 移动平台大版内专家分月排行榜第二
2012年9月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。当前位置:&&
本页文章导读:
&&&&?TextView中怎么根据内容格式匹配动作 &&&&&& TextView中如何根据内容格式匹配动作
在TextView中,有时会有需要根据内容格式来匹配动作,怎么理解呢
比如说我们看到一个网址如:,我们希望能够连接过去,这时我们可以实现......&&&&? 让ProgressDialog在setCancelable(false)时按回到键可dismiss &&&&&& 让ProgressDialog在setCancelable(false)时按返回键可dismiss最近发现Android4.0系统中ProgressDialog设置为setCancelable(true)时,点击ProgressDialog以外的区域也可以让ProgressDialog dismiss掉。但有时我们不希望是这......&&&&? QSettings保留程序设置&&&&&& QSettings保存程序设置今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态。我这里实现了一个简单的文本编辑窗口,可以设置文本的......
&&&&&&最新IT科技资讯推荐:
[1]TextView中怎么根据内容格式匹配动作
&&&&来源:&互联网& 发布时间:&
TextView中如何根据内容格式匹配动作
在TextView中,有时会有需要根据内容格式来匹配动作,怎么理解呢
比如说我们看到一个网址如:,我们希望能够连接过去,这时我们可以实现去自动识别网址,然后能够连接过去
废话少说,看代码:
activity_main.xml代码:
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClick"
android:text="根据内容自动匹配动作的文本" /&
&/LinearLayout&
MainActivity.java代码:
package com.example.exercise3;
import android.os.B
import android.app.A
import android.content.I
import android.view.M
import android.view.V
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public void myClick(View view){
Intent intent=new Intent();
switch(view.getId()){
case R.id.btn1:
intent.setClass(this, HtmlFormatText.class);
case R.id.btn2:
intent.setClass(this, AutoMatch.class);
case R.id.btn3:
intent.setClass(this, MyDefineActionTextView.class);
case R.id.btn4:
intent.setClass(this, FormatTextView.class);
case R.id.btn5:
intent.setClass(this,InputImageEditViewActivity.class);
this.startActivity(intent);
点击btn2,启动AutoMatch.java
AutoMatch.java代码:
package com.example.exercise3;
import android.app.A
import android.os.B
import android.widget.TextV
public class AutoMatch extends Activity {
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.auto_match);
TextView tv=(TextView)findViewById(R.id.match_txt);
String msg="百度:\n";
msg+="8690423";
tv.setText(msg);
auto_match.xml代码:
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" &
android:id="@+id/match_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all"
&/LinearLayout&
看了这么多,其实实现功能的代码就是:android:autoLink="all",
以后再开发过程中这样的使用方式并不多
如果各位朋友有什么疑问和建议,欢迎大家给我留言。。。
[2] 让ProgressDialog在setCancelable(false)时按回到键可dismiss
&&&&来源:&互联网& 发布时间:&
让ProgressDialog在setCancelable(false)时按返回键可dismiss最近发现Android4.0系统中ProgressDialog设置为setCancelable(true)时,点击ProgressDialog以外的区域也可以让ProgressDialog dismiss掉。但有时我们不希望是这样的效果,于是将ProgressDialog设置setCancelable(false),再点击ProgressDialog以外的区域就不会出现前面所说的情况了,然而这样以来再按返回键时就不起作用了,只能等待程序执行到dissmiss处为止。其实,只要为ProgressDialog添加KeyListener来对返回键予以处理就可以解决这个问题了。
package cn.winfirm.examples.
import android.app.A
import android.app.ProgressD
import android.content.DialogI
import android.content.DialogInterface.OnKeyL
import android.os.B
import android.view.KeyE
import android.view.W
* Activity的基类,带一个ProgressDialog,可双击取消其显示
* @author savant
public class BaseActivity extends Activity {
private ProgressDialog progressDialog =
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
* show loading progress dialog
public void showDialog() {
if (null == progressDialog) {
progressDialog = ProgressDialog.show(BaseActivity.this, "", "正在加载,请稍候...");
progressDialog.setCancelable(false);
progressDialog.show();
progressDialog.setOnKeyListener(onKeyListener);
* add a keylistener for progress dialog
private OnKeyListener onKeyListener = new OnKeyListener() {
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
dismissDialog();
* dismiss dialog
public void dismissDialog() {
if (isFinishing()) {
if (null != progressDialog && progressDialog.isShowing()) {
progressDialog.dismiss();
* cancel progress dialog if nesseary
public void onBackPressed() {
if (progressDialog != null && progressDialog.isShowing()) {
dismissDialog();
super.onBackPressed();
[3] QSettings保留程序设置
&&&&来源:&互联网& 发布时间:&
QSettings保存程序设置今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态。我这里实现了一个简单的文本编辑窗口,可以设置文本的字体,字体的颜色和背景色。每次关闭程序都保存程序的几何大小,位置和文本以及文本所设置的格式,方便启动程序后继续编辑。
文本编辑窗口
TextEditor继承了QTextEdit,主要实现文本编辑和文本格式设置。保存文本信息时直接用的html字符串形式保存,可以同时保存文本的格式。
class TextEditor:public QTextEdit
TextEditor(QWidget *parent = NULL);
~TextEditor();
void SaveSettings();
protected:
void ReadSettings();
void contextMenuEvent ( QContextMenuEvent * event );
private slots:
void SettingBackColorSlot();
void SettingTextColorSlot();
void SettingTextFontSlot();
TextEditor::TextEditor( QWidget *parent /*= NULL*/ ):QTextEdit(parent)
ReadSettings();
TextEditor::~TextEditor()
void TextEditor::contextMenuEvent( QContextMenuEvent * event )
QMenu *pMenu = createStandardContextMenu();
pMenu-&addSeparator();
QTextCursor cursor = this-&textCursor();
QString seletedText = cursor.selectedText();
if (!seletedText.isEmpty())
//选中文本才可以设置文本样式
QMenu *pSubMenu = new QMenu(tr("设置"),pMenu);
pMenu-&addMenu(pSubMenu);
QAction *pFontAct = new QAction(tr("字体"),pSubMenu);
QAction *pTextColorAct = new QAction(tr("字体颜色"),pSubMenu);
QAction *pBackColorAct = new QAction(tr("背景色"),pSubMenu);
pSubMenu-&addAction(pFontAct);
pSubMenu-&addAction(pTextColorAct);
pSubMenu-&addAction(pBackColorAct);
connect(pFontAct,SIGNAL(triggered ()),this,SLOT(SettingTextFontSlot()));
connect(pTextColorAct,SIGNAL(triggered ()),this,SLOT(SettingTextColorSlot()));
connect(pBackColorAct,SIGNAL(triggered ()),this,SLOT(SettingBackColorSlot()));
pMenu-&exec(event-&globalPos());
//设置文本背景色
void TextEditor::SettingBackColorSlot()
QColor color = QColorDialog::getColor(Qt::white, this, "Select Color", QColorDialog::DontUseNativeDialog);
if(color.isValid())
this-&setTextBackgroundColor(color);
//设置文本颜色
void TextEditor::SettingTextColorSlot()
QColor color = QColorDialog::getColor(Qt::black, this, "Select Color", QColorDialog::DontUseNativeDialog);
if(color.isValid())
this-&setTextColor(color);
//设置文本字体
void TextEditor::SettingTextFontSlot()
QFont font = QFontDialog::getFont(&ok, this);
QTextCursor cur = this-&textCursor();
QString sltStr = cur.selectedText();
this-&cut();
QTextCharFormat fmtT
fmtText.setFont(font);
cur.insertText(sltStr,fmtText);
//退出前保存文本信息
void TextEditor::SaveSettings()
QSettings TextSettings("Mysoft","TextData");
QString html = this-&toHtml();
TextSettings.setValue("text",html);
//启动时读取信息
void TextEditor::ReadSettings()
QSettings TextSettings("Mysoft","TextData");
QString html = TextSettings.value("text").toString();
this-&setHtml(html);
程序主窗口
class TextEdit : public QMainWindow
TextEdit(QWidget *parent = 0, Qt::WFlags flags = 0);
~TextEdit();
protected:
void closeEvent ( QCloseEvent * event ) ;
void ReadSettings();
TextEditor
*m_pCentralW
};TextEdit::TextEdit(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
m_pCentralWidget = new TextEditor(this);
this-&setCentralWidget(m_pCentralWidget);
ReadSettings();
TextEdit::~TextEdit()
void TextEdit::closeEvent( QCloseEvent * event )
QSettings dialogSettings("Mysoft","dialogData");
//保存窗口位置和大小
dialogSettings.setValue("Rect",this-&rect());
QPoint pos = this-&pos();
dialogSettings.setValue("positionX",this-&pos().x());
dialogSettings.setValue("positionY",this-&pos().y());
m_pCentralWidget-&SaveSettings();
void TextEdit::ReadSettings()
QSettings dialogSettings("Mysoft","dialogData");
//读取窗口位置和大小
dialogSettings.setValue("Rect",this-&rect());
dialogSettings.setValue("position",this-&pos());
QRect rect = dialogSettings.value("Rect").value&QRect&();
this-&setGeometry(rect);
int posX = dialogSettings.value("positionX").toInt();
int posY = dialogSettings.value("positionY").toInt();
this-&move(QPoint(posX,posY));
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)

我要回帖

更多关于 progressdialog 的文章

 

随机推荐