Android程序处理一个接一个的任务

Android程序处理一个接一个的任务,android,animation,pie-chart,Android,Animation,Pie Chart,在我的计划中,基本原则是:- 当程序打开时,将显示动画,然后显示饼图结果 我的代码是:--- 公共类弹出窗口\u动画11扩展活动{ 私有静态int[]COLORS=newint[]{Color.洋红,Color.CYAN}; 线性布局; 私有类别系列mSeries=新类别系列(“”); private DefaultRenderer mRenderer=新的DefaultRenderer(); private GraphicalView mChartView; 上下文ctx; 私有透明进程对话框

在我的计划中,基本原则是:-

当程序打开时,将显示动画,然后显示饼图结果

我的代码是:---

公共类弹出窗口\u动画11扩展活动{
私有静态int[]COLORS=newint[]{Color.洋红,Color.CYAN};
线性布局;
私有类别系列mSeries=新类别系列(“”);
private DefaultRenderer mRenderer=新的DefaultRenderer();
private GraphicalView mChartView;
上下文ctx;
私有透明进程对话框pd;
私有处理器h;
私人运营商;
编辑文本名称1,名称2;
私有int[]值={40,60};
字符串x1,y1;
按钮btnOpenPopup;
字符串[]名称\u列表;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.popup_main);
按钮btnOpenPopup=(按钮)findviewbyd(R.id.openpopup);
btnOpenPopup.setOnClickListener(新建按钮.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
pd.show();
}
});
h=新处理程序();
pd=新的TransparentProgressDialog(这个,R.drawable.uktrafficlights);
r=新的可运行(){
@凌驾
公开募捐{
if(pd.isShowing()){
pd.解散();
}
}
};
}
@凌驾
受保护的空onDestroy(){
h、 移除回调(r);
if(pd.isShowing()){
pd.解散();
}
super.ondestory();
}
私有类TransparentProgressDialog扩展对话框{
私人影像视图四;
public TransparentProgressDialog(上下文上下文,int resourceIdOfImage){
super(context,R.style.TransparentProgressDialog);
WindowManager.LayoutParams wlmp=getWindow().getAttributes();
wlmp.gravity=重心水平;
getWindow().setAttributes(wlmp);
setTitle(空);
可设置可取消(假);
setOnCancelListener(空);
LinearLayout布局=新的LinearLayout(上下文);
布局。设置方向(线性布局。垂直);
LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams(LayoutParams.MATCH\u父级,LayoutParams.WRAP\u内容);
iv=新图像视图(上下文);
iv.setImageResource(resourceIdOfImage);
布局。添加视图(iv,参数);
addContentView(布局、参数);
}
@凌驾
公开展览({
super.show();
RotateAnimation anim=新的RotateAnimation(0.0f,360.0f,Animation.RELATIVE\u TO\u SELF,.5f,Animation.RELATIVE\u TO\u SELF,.5f);
anim.setInterpolator(新的LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
动画设定持续时间(3000);
iv.动画(动画);
iv.启动动画(动画);
anim.setAnimationListener(新的Animation.AnimationListener(){
@凌驾
onAnimationStart上的公共无效(动画){
}
@凌驾
onAnimationEnd上的公共无效(动画){
//这里显示数据
h、 延迟后(r,100);
pd.解散();
mrender.setApplyBackgroundColor(真);
mrender.setBackgroundColor(Color.argb(100,50,50,50));
mRenderer.setChartTitleTextSize(20);
mrender.setLabelsTextSize(15);
mrender.setLegendTextSize(15);
mRenderer.setMargins(新的int[]{20,30,15,0});
mrender.setZoomButtonsVisible(true);
mrender.设置起始角(90);
mChartView=ChartFactory.getPieChartView(ctx、mSeries、MRender);
LayoutFlater LayoutFlater=(LayoutFlater)getBaseContext().getSystemService(布局\充气器\服务);
视图popupView=LayoutFlater.充气(R.layout.main\u piechart,null);
final PopupWindow PopupWindow=新的PopupWindow(popupView、LayoutParams.WRAP_内容、LayoutParams.WRAP_内容);
布局=(LinearLayout)popupView.findViewById(R.id.chart);
布局。添加视图(mChartView);
name1=(EditText)findViewById(R.id.ext1);
name2=(EditText)findViewById(R.id.ext2);
x1=name1.getText().toString();
y1=name2.getText().toString();
NAME_LIST=新字符串[]{x1,y1};
对于(int i=0;ipublic class Popup_animation11 extends Activity {

    private static int[] COLORS = new int[] { Color.MAGENTA, Color.CYAN };  
    LinearLayout layout;

    private CategorySeries mSeries = new CategorySeries("");  
    private DefaultRenderer mRenderer = new DefaultRenderer();  
    private GraphicalView mChartView;  
    Context ctx;

    private TransparentProgressDialog pd;
    private Handler h;
    private Runnable r;

     EditText name1,name2;

     private  int[] VALUES = { 40,60 };
     String x1,y1;
     Button btnOpenPopup;
     String[] NAME_LIST ; 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.popup_main);

        Button btnOpenPopup = (Button)findViewById(R.id.openpopup);
        btnOpenPopup.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View arg0) {

               pd.show();
            }
        });


         h = new Handler();
            pd = new TransparentProgressDialog(this, R.drawable.uktrafficlights);
            r =new Runnable() {
                @Override
                public void run() {
                    if (pd.isShowing()) {
                        pd.dismiss();
                    }
                }
            };



    }



    @Override
    protected void onDestroy() {
        h.removeCallbacks(r);
        if (pd.isShowing() ) {
            pd.dismiss();
        }
        super.onDestroy();
    }

    private class TransparentProgressDialog extends Dialog {

        private ImageView iv;

        public TransparentProgressDialog(Context context, int resourceIdOfImage) {
            super(context, R.style.TransparentProgressDialog);
            WindowManager.LayoutParams wlmp = getWindow().getAttributes();
            wlmp.gravity = Gravity.CENTER_HORIZONTAL;
            getWindow().setAttributes(wlmp);
            setTitle(null);
            setCancelable(false);
            setOnCancelListener(null);
            LinearLayout layout = new LinearLayout(context);
            layout.setOrientation(LinearLayout.VERTICAL);
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
            iv = new ImageView(context);
            iv.setImageResource(resourceIdOfImage);
            layout.addView(iv, params);
            addContentView(layout, params);
        }

        @Override
        public void show() {
            super.show();
            RotateAnimation anim = new RotateAnimation(0.0f, 360.0f , Animation.RELATIVE_TO_SELF, .5f, Animation.RELATIVE_TO_SELF, .5f);

            anim.setInterpolator(new LinearInterpolator());
            anim.setRepeatCount(Animation.INFINITE);
            anim.setDuration(3000);
            iv.setAnimation(anim);
            iv.startAnimation(anim);

            anim.setAnimationListener(new Animation.AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {



                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    //here display data
                     h.postDelayed(r, 100);
                     pd.dismiss();
                     mRenderer.setApplyBackgroundColor(true);
                     mRenderer.setBackgroundColor(Color.argb(100, 50, 50, 50));  
                     mRenderer.setChartTitleTextSize(20);  
                     mRenderer.setLabelsTextSize(15);  
                     mRenderer.setLegendTextSize(15);  
                     mRenderer.setMargins(new int[] { 20, 30, 15, 0 });  
                     mRenderer.setZoomButtonsVisible(true);  
                     mRenderer.setStartAngle(90);
                     mChartView = ChartFactory.getPieChartView(ctx, mSeries, mRenderer); 

                LayoutInflater layoutInflater    = (LayoutInflater)getBaseContext()  .getSystemService(LAYOUT_INFLATER_SERVICE);  


                   View popupView = layoutInflater.inflate(R.layout.main_piechart, null);  
                          final PopupWindow popupWindow = new PopupWindow( popupView, LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
                          layout = (LinearLayout)popupView.findViewById(R.id.chart); 
                          layout.addView(mChartView);

                          name1=(EditText) findViewById(R.id.ext1);
                          name2=(EditText) findViewById(R.id.ext2);
                          x1=name1.getText().toString();
                          y1=name2.getText().toString();
                          NAME_LIST = new String[] { x1 , y1 };
                          for (int i = 0; i < VALUES.length; i++) {  

                                mSeries.add(NAME_LIST[i] + "(" + VALUES[i]+"%)", VALUES[i]);
                                SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();  
                              renderer.setColor(COLORS[(mSeries.getItemCount() - 1) % COLORS.length]);  
                              mRenderer.addSeriesRenderer(renderer);  
                              }  

                              if (mChartView != null) {  

                                mChartView.repaint();  

                              }  


                          Button btnDismiss = (Button)popupView.findViewById(R.id.dismiss);
                          btnDismiss.setOnClickListener(new Button.OnClickListener(){

                  @Override
                  public void onClick(View v) {

                   popupWindow.dismiss();
                  }});

                          popupWindow.showAsDropDown(btnOpenPopup, 50, -30);

                }

                @Override
                public void onAnimationRepeat(Animation animation) {
                    // TODO Auto-generated method stub


                }



    });

    }
    }
}
 FATAL EXCEPTION: main
 Process: in.wptrafficanalyzer.achartenginepiechart, PID: 12831
 java.lang.NullPointerException
    at android.view.ViewConfiguration.get(ViewConfiguration.java:325)
    at android.view.View.<init>(View.java:3483)
    at org.achartengine.GraphicalView.<init>(GraphicalView.java:89)
    at org.achartengine.ChartFactory.getPieChartView(ChartFactory.java:226)
    at in.wptrafficanalyzer.achartenginepiechart.Popup_animation11$TransparentProgressDialog$1.onAnimationEnd(Popup_animation11.java:156)
    at android.view.animation.Animation$3.run(Animation.java:374)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5324)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)
mChartView = ChartFactory.getPieChartView(ctx, mSeries, mRenderer);
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.popup_main);
    ctx=Popup_animation11.this;<<<<< initialize here
    ......