1
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は常にゼロであり、プログレス バーにも変更はありません (単に空白です)。

4

2 に答える 2

2

ここでの問題はint分割です。Java では、int除算によって剰余が切り捨てられるため、int.

(printedpixel/total_pixels)*100;

printedpixel/total_pixelsこのため、常に 0 が返されます。0*100 は常に 0 になります。

doubleこれは、またはを使用して修正できますfloat

double  print_prog;
double total_pixels = (double) mPixels_printedpixelcomparison.capacity();
**print_prog** = (printedpixel/total_pixels)*100;
printProgress.setProgress(**print_prog**);
于 2012-08-06T04:36:22.230 に答える
1

@nicholas.hauschild による答えは正しいですが、より簡単で迅速な解決策は、

(printedpixel/total_pixels)*100;

(printedpixel*100/total_pixels);
于 2012-08-06T04:52:25.607 に答える