Image.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Trace(array);
                .....
                int  print_prog;
                int total_pixels = mPixels_printedpixelcomparison.capacity();
                **print_prog** = (printedpixel/total_pixels)*100;
                printProgress.setProgress(**print_prog**);
                ......
           }




  private Bitmap Trace(int[] imageArray)
  {
    .....
    printedpixel +=100;
    .....


 }



  在上面的代码中print_prog始终为零,并且进度条也没有任何变化(只是空白),为零的原因...任何人都可以帮我解决这个问题吗?

最佳答案

这里的问题是int除法。在Java中,int除法会截断余数,以便它可以返回int

(printedpixel/total_pixels)*100;


因此,printedpixel/total_pixels将始终返回0。并且0 * 100始终为0。

您可以使用doublefloat来解决此问题。

double  print_prog;
double total_pixels = (double) mPixels_printedpixelcomparison.capacity();
**print_prog** = (printedpixel/total_pixels)*100;
printProgress.setProgress(**print_prog**);

07-24 09:48