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。您可以使用
double
或float
来解决此问题。double print_prog;
double total_pixels = (double) mPixels_printedpixelcomparison.capacity();
**print_prog** = (printedpixel/total_pixels)*100;
printProgress.setProgress(**print_prog**);