mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 10:49:24 +02:00
Wallpapers from file (FBView.getWallpaperFile() is not implemented yet)
This commit is contained in:
parent
1a9d72da3c
commit
eea5ca3430
6 changed files with 50 additions and 9 deletions
|
@ -23,6 +23,8 @@ import org.geometerplus.zlibrary.core.application.ZLApplication;
|
|||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||
import org.geometerplus.zlibrary.core.library.ZLibrary;
|
||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||
|
||||
import org.geometerplus.zlibrary.text.model.ZLTextModel;
|
||||
import org.geometerplus.zlibrary.text.view.*;
|
||||
|
||||
|
@ -377,6 +379,11 @@ public final class FBView extends ZLTextView {
|
|||
return myReader.BottomMarginOption.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZLFile getWallpaperFile() {
|
||||
return ZLFile.createFileByPath("/sdcard/Wallpapers/FonSepiaSandstone.jpg");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZLColor getBackgroundColor() {
|
||||
return myReader.getColorProfile().BackgroundOption.getValue();
|
||||
|
@ -467,7 +474,12 @@ public final class FBView extends ZLTextView {
|
|||
final String infoString = info.toString();
|
||||
|
||||
final int infoWidth = context.getStringWidth(infoString);
|
||||
context.clear(bgColor);
|
||||
final ZLFile wallpaper = getWallpaperFile();
|
||||
if (wallpaper != null) {
|
||||
context.clear(wallpaper);
|
||||
} else {
|
||||
context.clear(getBackgroundColor());
|
||||
}
|
||||
|
||||
// draw info text
|
||||
context.setTextColor(fgColor);
|
||||
|
|
|
@ -20,14 +20,18 @@
|
|||
package org.geometerplus.zlibrary.core.view;
|
||||
|
||||
import java.util.*;
|
||||
import org.geometerplus.zlibrary.core.util.*;
|
||||
|
||||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||
import org.geometerplus.zlibrary.core.image.ZLImageData;
|
||||
|
||||
final class DummyPaintContext extends ZLPaintContext {
|
||||
DummyPaintContext() {
|
||||
}
|
||||
|
||||
public void clear(ZLFile wallpaperFile) {
|
||||
}
|
||||
|
||||
public void clear(ZLColor color) {
|
||||
}
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
package org.geometerplus.zlibrary.core.view;
|
||||
|
||||
import java.util.*;
|
||||
import org.geometerplus.zlibrary.core.util.*;
|
||||
|
||||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||
import org.geometerplus.zlibrary.core.image.ZLImageData;
|
||||
|
||||
abstract public class ZLPaintContext {
|
||||
|
@ -40,6 +41,7 @@ abstract public class ZLPaintContext {
|
|||
protected ZLPaintContext() {
|
||||
}
|
||||
|
||||
abstract public void clear(ZLFile wallpaperFile);
|
||||
abstract public void clear(ZLColor color);
|
||||
|
||||
private boolean myResetFont = true;
|
||||
|
|
|
@ -23,6 +23,8 @@ import java.util.*;
|
|||
|
||||
import org.geometerplus.zlibrary.core.application.ZLApplication;
|
||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||
|
||||
import org.geometerplus.zlibrary.text.model.*;
|
||||
import org.geometerplus.zlibrary.text.hyphenation.*;
|
||||
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleCollection;
|
||||
|
@ -252,7 +254,12 @@ public abstract class ZLTextView extends ZLTextViewBase {
|
|||
@Override
|
||||
public synchronized void paint(ZLPaintContext context, int viewPage) {
|
||||
myContext = context;
|
||||
context.clear(getBackgroundColor());
|
||||
final ZLFile wallpaper = getWallpaperFile();
|
||||
if (wallpaper != null) {
|
||||
context.clear(wallpaper);
|
||||
} else {
|
||||
context.clear(getBackgroundColor());
|
||||
}
|
||||
|
||||
if ((myModel == null) || (myModel.getParagraphsNumber() == 0)) {
|
||||
return;
|
||||
|
|
|
@ -22,6 +22,7 @@ package org.geometerplus.zlibrary.text.view;
|
|||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||
import org.geometerplus.zlibrary.core.view.ZLView;
|
||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||
|
||||
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleCollection;
|
||||
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleDecoration;
|
||||
|
@ -47,6 +48,7 @@ abstract class ZLTextViewBase extends ZLView {
|
|||
public abstract int getTopMargin();
|
||||
public abstract int getBottomMargin();
|
||||
|
||||
public abstract ZLFile getWallpaperFile();
|
||||
public abstract ZLColor getBackgroundColor();
|
||||
public abstract ZLColor getSelectedBackgroundColor();
|
||||
public abstract ZLColor getTextColor(byte hyperlinkType);
|
||||
|
|
|
@ -27,6 +27,7 @@ import android.graphics.*;
|
|||
import org.geometerplus.zlibrary.core.image.ZLImageData;
|
||||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||
|
||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData;
|
||||
import org.geometerplus.zlibrary.ui.android.util.ZLAndroidColorUtil;
|
||||
|
@ -63,12 +64,17 @@ public final class ZLAndroidPaintContext extends ZLPaintContext {
|
|||
myOutlinePaint.setMaskFilter(new EmbossMaskFilter(new float[] {1, 1, 1}, .4f, 6f, 3.5f));
|
||||
}
|
||||
|
||||
private ZLFile myWallpaperFile;
|
||||
private Bitmap myWallpaper;
|
||||
public void clear(ZLColor color) {
|
||||
myFillPaint.setColor(ZLAndroidColorUtil.rgb(color));
|
||||
myCanvas.drawRect(0, 0, myWidth + myScrollbarWidth, myHeight, myFillPaint);
|
||||
if (myWallpaper == null) {
|
||||
myWallpaper = new BitmapFactory().decodeFile("/sdcard/Wallpapers/test.png");
|
||||
@Override
|
||||
public void clear(ZLFile wallpaperFile) {
|
||||
if (!wallpaperFile.equals(myWallpaperFile)) {
|
||||
myWallpaperFile = wallpaperFile;
|
||||
try {
|
||||
myWallpaper = new BitmapFactory().decodeStream(wallpaperFile.getInputStream());
|
||||
} catch (Throwable t) {
|
||||
myWallpaper = null;
|
||||
}
|
||||
}
|
||||
if (myWallpaper != null) {
|
||||
final int w = myWallpaper.getWidth();
|
||||
|
@ -78,9 +84,17 @@ public final class ZLAndroidPaintContext extends ZLPaintContext {
|
|||
myCanvas.drawBitmap(myWallpaper, cw, ch, myFillPaint);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
clear(new ZLColor(128, 128, 128));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear(ZLColor color) {
|
||||
myFillPaint.setColor(ZLAndroidColorUtil.rgb(color));
|
||||
myCanvas.drawRect(0, 0, myWidth + myScrollbarWidth, myHeight, myFillPaint);
|
||||
}
|
||||
|
||||
public void drawOutline(int[] xs, int ys[]) {
|
||||
final int last = xs.length - 1;
|
||||
int xStart = (xs[0] + xs[last]) / 2;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue