请教:自定义进度条的错误 注:有错误,进度条无反应

来源:互联网 发布:淘宝链接 104厘米肛塞 编辑:程序博客网 时间:2024/05/01 16:34

请教:自定义进度条的错误   注:有错误,进度条无反应

昨晚研究自定义布局,选了自定义进度条,但是程序写好后,运行,进度条无反应,不知道为什么,不知道哪里漏了什么或是写错了什么。
如果哪个高手有时间有耐心的看完,请留言指正,不胜感激,谢谢。

运行时别忘了家internet权限

下面我就直接上代码了
==============================
attrs.xml
<?xml version="1.0" encoding="utf-8"?><resources><!-- 标题栏属性 -->    <declare-styleable name="PbarArrtr"> <attr name="pbvalues" format="integer"  /></declare-styleable></resources>

==============================
gradient_root.xml
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <item android:id="@android:id/background">        <shape>            <corners android:radius="5dip" />            <gradient                    android:startColor="#ff9d9e9d"                    android:centerColor="#ff5a5d5a"                    android:centerY="0.75"                    android:endColor="#ff747674"                    android:angle="270"            />        </shape>    </item>        <item android:id="@android:id/secondaryProgress">        <clip android:gravity="right">            <shape>                <corners android:radius="5dip" />                <gradient                        android:startColor="#80ffd300"                        android:centerColor="#80ffb600"                        android:centerY="0.75"                        android:endColor="#a0ffcb00"                        android:angle="270"                />            </shape>        </clip>    </item>        <item android:id="@android:id/progress">        <clip android:gravity="right">            <shape>                <corners android:radius="5dip" />                <gradient                        android:startColor="#ff3833fb"                        android:centerColor="#ff3833fb"                        android:centerY="0.75"                        android:endColor="#ff3833fb"                        android:angle="270"                />            </shape>        </clip>    </item></layer-list>

================================
pb.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="wrap_content">    <ProgressBar   android:id="@+id/pbar"  android:layout_width="fill_parent"  android:layout_height="20dip"  android:background="@drawable/titbg"  style="?android:attr/progressBarStyleHorizontal"  android:max="100" android:progress="0"  />    </RelativeLayout>

================================
Pb.java
package com.y.onclick;import android.content.Context;import android.content.res.TypedArray;import android.util.AttributeSet;import android.view.LayoutInflater;import android.widget.ProgressBar;import android.widget.RelativeLayout;public class Pb extends RelativeLayout{protected ProgressBar pbar;protected int pbvalues = 0;public Pb(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);TypedArray attrsArray = context.obtainStyledAttributes(attrs,R.styleable.PbarArrtr);pbvalues = attrsArray.getInt(R.styleable.PbarArrtr_pbvalues, 0);init();}public Pb(Context context, AttributeSet attrs) {super(context, attrs);TypedArray attrsArray = context.obtainStyledAttributes(attrs,R.styleable.PbarArrtr);pbvalues = attrsArray.getInt(R.styleable.PbarArrtr_pbvalues, 0);init();}public Pb(Context context) {super(context);init();}private void init(){LayoutInflater.from(getContext()).inflate(R.layout.pd, this);pbar = (ProgressBar) findViewById(R.id.pbar);pbar.setProgress(pbvalues);}public void setPb(int s){this.pbvalues = s;}}

===================================
mail.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:onclick="http://schemas.android.com/apk/res/com.y.onclick"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tv" android:layout_width="fill_parent"android:layout_height="wrap_content" android:textColor="@android:color/black"android:background="@android:color/white" android:gravity="right"android:textSize="35sp" /><com.y.onclick.Pb android:id="@+id/pb"android:layout_width="fill_parent" android:layout_height="wrap_content"onclick:pbvalues="0" /><ProgressBar android:id="@+id/ppppp" android:layout_width="fill_parent"android:layout_height="50dip" android:background="@drawable/titbg"android:progressDrawable="@drawable/gradient_root"style="?android:attr/progressBarStyleHorizontal" android:max="100" android:progress="0"/><WebView android:id="@+id/web" android:layout_width="fill_parent"android:layout_height="fill_parent" /></LinearLayout>

=================================
AActivity.java
package com.y.onclick;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.Window;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.ProgressBar;import android.widget.TextView;public class AActivity extends Activity {WebView webView;TextView tv;Pb pb;ProgressBar bar;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().requestFeature(Window.FEATURE_PROGRESS);getWindow().setFeatureInt(Window.FEATURE_PROGRESS,Window.PROGRESS_VISIBILITY_ON);// setProgressBarIndeterminateVisibility(true);setContentView(R.layout.main);WebView webview = (WebView) findViewById(R.id.web);tv = (TextView) findViewById(R.id.tv);pb = (Pb) findViewById(R.id.pb);bar = (ProgressBar) findViewById(R.id.ppppp);webview.setWebViewClient(new DownLoadWebViewClient(this));webview.setWebChromeClient(new WebChromeClient() {public void onProgressChanged(WebView view, int progress) {// Activity和Webview根据加载程度决定进度条的进度大小// 当加载到100%的时候 进度条自动消失AActivity.this.setTitle("Loading...");AActivity.this.setProgress(progress * 100);// pb.setPb(progress * 100);// bar.setProgress(progress * 100);mHandler.obtainMessage(0, progress).sendToTarget();if (progress < 100) {bar.setVisibility(View.VISIBLE);}if (progress == 100) {bar.setVisibility(View.GONE);AActivity.this.setTitle("完成");tv.setVisibility(View.GONE);}}});WebSettings s = webview.getSettings();s.setSaveFormData(false);s.setSavePassword(false);s.setUseWideViewPort(true);s.setJavaScriptEnabled(true);s.setLightTouchEnabled(true);webview.loadUrl("http://www.163.com");}UiHandler mHandler = new UiHandler();public class UiHandler extends Handler {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 0:tv.setText((Integer) msg.obj + "%");pb.setPb((Integer) msg.obj);bar.setProgress((Integer) msg.obj);break;default:break;}}}private class HelloWebViewClient extends WebViewClient {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);System.out.println(url);return true;}}public class DownLoadWebViewClient extends WebViewClient {private Context context;public DownLoadWebViewClient(Context context) {this.context = context;}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);System.out.println(url);return true;}}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();java.lang.System.out.println("onRestart");}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();java.lang.System.out.println("onResume");}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();java.lang.System.out.println("onStart");}@Overrideprotected void onStop() {// TODO Auto-generated method stubjava.lang.System.out.println("onStop");super.onStop();}}

原创粉丝点击