dear user, this can be fix by replace these 2 methods in com.radaee.view.PDFLayout class:
private void vDrawZoom(Canvas canvas, int x, int y) {
int pageno0 = m_disp_page1;
int pageno1 = m_disp_page2;
if (Global.dark_mode) {
//m_bmp.eraseColor(m_back_color);
Canvas bcan = new Canvas(m_bmp);
while (pageno0 < pageno1) {
m_pages[pageno0].vDraw(m_thread, bcan, x, y);
pageno0++;
}
m_dbmp.Create(m_bmp);
if (((m_back_color >> 24) & 255) == 0)
m_dbmp.DrawRect(0xFFFFFF, 0, 0, m_w, m_h, 1);
else
m_dbmp.DrawRect(m_back_color, 0, 0, m_w, m_h, 1);
m_dbmp.Invert();
m_dbmp.Free(m_bmp);
canvas.drawBitmap(m_bmp, 0, 0, null);
} else {
canvas.drawColor(m_back_color);
while (pageno0 < pageno1) {
m_pages[pageno0].vDraw(m_thread, canvas, x, y);
pageno0++;
}
}
}
private void vDrawNormal(Canvas canvas, int x, int y) {
int pageno0 = m_disp_page1;
int pageno1 = m_disp_page2;
boolean clip = m_scale > m_zoom_level_clip * m_scale_min;
VPage vp;
//m_bmp.eraseColor(m_back_color);
m_dbmp.Create(m_bmp);
if (Global.dark_mode && ((m_back_color >> 24) & 255) == 0)
m_dbmp.DrawRect(0xFFFFFF, 0, 0, m_w, m_h, 1);
else
m_dbmp.DrawRect(m_back_color, 0, 0, m_w, m_h, 1);
while (pageno0 < pageno1)//first step: only draw finished block.
{
boolean clipPage = Global.fit_different_page_size ? m_scales[pageno0] / m_scales_min[pageno0] > m_zoom_level_clip : clip;
vp = m_pages[pageno0++];
vp.vClips(m_thread, clipPage);//clip to blocks.
vp.vDraw(m_thread, m_dbmp, x, y);
}
if (Global.dark_mode)//dark mode.
{
if (Global.cacheEnabled)//zoom cache to bitmap
{
m_dbmp.Free(m_bmp);
Canvas bcan = new Canvas(m_bmp);
pageno0 = m_disp_page1;
while (pageno0 < pageno1) {
vp = m_pages[pageno0++];
vp.vDrawStep1(m_thread, bcan);
vp.vDrawEnd();
}
m_dbmp.Create(m_bmp);
} else//draw rendering blocks to
{
pageno0 = m_disp_page1;
while (pageno0 < pageno1) {
vp = m_pages[pageno0++];
vp.vDrawStep2(m_dbmp);
vp.vDrawEnd();
}
}
m_dbmp.Invert();//convert to dark.
m_dbmp.Free(m_bmp);
canvas.drawBitmap(m_bmp, 0, 0, null);
} else {
if (Global.cacheEnabled)//zoom cache to canvas directly.
{
m_dbmp.Free(m_bmp);
canvas.drawBitmap(m_bmp, 0, 0, null);
pageno0 = m_disp_page1;
while (pageno0 < pageno1) {
vp = m_pages[pageno0++];
vp.vDrawStep1(m_thread, canvas);
vp.vDrawEnd();
}
} else//if not in cache mode, just draw rendering block.
{
pageno0 = m_disp_page1;
while (pageno0 < pageno1) {
vp = m_pages[pageno0++];
vp.vDrawStep2(m_dbmp);
vp.vDrawEnd();
}
m_dbmp.Free(m_bmp);
canvas.drawBitmap(m_bmp, 0, 0, null);
}
}
//if(Global.debug_mode) Log.e("draw", String.format("%d", SystemClock.elapsedRealtime() - tick_time));
}