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.util.ZLColor;
|
||||||
import org.geometerplus.zlibrary.core.library.ZLibrary;
|
import org.geometerplus.zlibrary.core.library.ZLibrary;
|
||||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
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.model.ZLTextModel;
|
||||||
import org.geometerplus.zlibrary.text.view.*;
|
import org.geometerplus.zlibrary.text.view.*;
|
||||||
|
|
||||||
|
@ -377,6 +379,11 @@ public final class FBView extends ZLTextView {
|
||||||
return myReader.BottomMarginOption.getValue();
|
return myReader.BottomMarginOption.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ZLFile getWallpaperFile() {
|
||||||
|
return ZLFile.createFileByPath("/sdcard/Wallpapers/FonSepiaSandstone.jpg");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ZLColor getBackgroundColor() {
|
public ZLColor getBackgroundColor() {
|
||||||
return myReader.getColorProfile().BackgroundOption.getValue();
|
return myReader.getColorProfile().BackgroundOption.getValue();
|
||||||
|
@ -467,7 +474,12 @@ public final class FBView extends ZLTextView {
|
||||||
final String infoString = info.toString();
|
final String infoString = info.toString();
|
||||||
|
|
||||||
final int infoWidth = context.getStringWidth(infoString);
|
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
|
// draw info text
|
||||||
context.setTextColor(fgColor);
|
context.setTextColor(fgColor);
|
||||||
|
|
|
@ -20,14 +20,18 @@
|
||||||
package org.geometerplus.zlibrary.core.view;
|
package org.geometerplus.zlibrary.core.view;
|
||||||
|
|
||||||
import java.util.*;
|
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;
|
import org.geometerplus.zlibrary.core.image.ZLImageData;
|
||||||
|
|
||||||
final class DummyPaintContext extends ZLPaintContext {
|
final class DummyPaintContext extends ZLPaintContext {
|
||||||
DummyPaintContext() {
|
DummyPaintContext() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear(ZLFile wallpaperFile) {
|
||||||
|
}
|
||||||
|
|
||||||
public void clear(ZLColor color) {
|
public void clear(ZLColor color) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
package org.geometerplus.zlibrary.core.view;
|
package org.geometerplus.zlibrary.core.view;
|
||||||
|
|
||||||
import java.util.*;
|
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;
|
import org.geometerplus.zlibrary.core.image.ZLImageData;
|
||||||
|
|
||||||
abstract public class ZLPaintContext {
|
abstract public class ZLPaintContext {
|
||||||
|
@ -40,6 +41,7 @@ abstract public class ZLPaintContext {
|
||||||
protected ZLPaintContext() {
|
protected ZLPaintContext() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract public void clear(ZLFile wallpaperFile);
|
||||||
abstract public void clear(ZLColor color);
|
abstract public void clear(ZLColor color);
|
||||||
|
|
||||||
private boolean myResetFont = true;
|
private boolean myResetFont = true;
|
||||||
|
|
|
@ -23,6 +23,8 @@ import java.util.*;
|
||||||
|
|
||||||
import org.geometerplus.zlibrary.core.application.ZLApplication;
|
import org.geometerplus.zlibrary.core.application.ZLApplication;
|
||||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
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.model.*;
|
||||||
import org.geometerplus.zlibrary.text.hyphenation.*;
|
import org.geometerplus.zlibrary.text.hyphenation.*;
|
||||||
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleCollection;
|
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleCollection;
|
||||||
|
@ -252,7 +254,12 @@ public abstract class ZLTextView extends ZLTextViewBase {
|
||||||
@Override
|
@Override
|
||||||
public synchronized void paint(ZLPaintContext context, int viewPage) {
|
public synchronized void paint(ZLPaintContext context, int viewPage) {
|
||||||
myContext = context;
|
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)) {
|
if ((myModel == null) || (myModel.getParagraphsNumber() == 0)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -22,6 +22,7 @@ package org.geometerplus.zlibrary.text.view;
|
||||||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||||
import org.geometerplus.zlibrary.core.view.ZLView;
|
import org.geometerplus.zlibrary.core.view.ZLView;
|
||||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
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.ZLTextStyleCollection;
|
||||||
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleDecoration;
|
import org.geometerplus.zlibrary.text.view.style.ZLTextStyleDecoration;
|
||||||
|
@ -47,6 +48,7 @@ abstract class ZLTextViewBase extends ZLView {
|
||||||
public abstract int getTopMargin();
|
public abstract int getTopMargin();
|
||||||
public abstract int getBottomMargin();
|
public abstract int getBottomMargin();
|
||||||
|
|
||||||
|
public abstract ZLFile getWallpaperFile();
|
||||||
public abstract ZLColor getBackgroundColor();
|
public abstract ZLColor getBackgroundColor();
|
||||||
public abstract ZLColor getSelectedBackgroundColor();
|
public abstract ZLColor getSelectedBackgroundColor();
|
||||||
public abstract ZLColor getTextColor(byte hyperlinkType);
|
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.image.ZLImageData;
|
||||||
import org.geometerplus.zlibrary.core.util.ZLColor;
|
import org.geometerplus.zlibrary.core.util.ZLColor;
|
||||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
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.image.ZLAndroidImageData;
|
||||||
import org.geometerplus.zlibrary.ui.android.util.ZLAndroidColorUtil;
|
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));
|
myOutlinePaint.setMaskFilter(new EmbossMaskFilter(new float[] {1, 1, 1}, .4f, 6f, 3.5f));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ZLFile myWallpaperFile;
|
||||||
private Bitmap myWallpaper;
|
private Bitmap myWallpaper;
|
||||||
public void clear(ZLColor color) {
|
@Override
|
||||||
myFillPaint.setColor(ZLAndroidColorUtil.rgb(color));
|
public void clear(ZLFile wallpaperFile) {
|
||||||
myCanvas.drawRect(0, 0, myWidth + myScrollbarWidth, myHeight, myFillPaint);
|
if (!wallpaperFile.equals(myWallpaperFile)) {
|
||||||
if (myWallpaper == null) {
|
myWallpaperFile = wallpaperFile;
|
||||||
myWallpaper = new BitmapFactory().decodeFile("/sdcard/Wallpapers/test.png");
|
try {
|
||||||
|
myWallpaper = new BitmapFactory().decodeStream(wallpaperFile.getInputStream());
|
||||||
|
} catch (Throwable t) {
|
||||||
|
myWallpaper = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (myWallpaper != null) {
|
if (myWallpaper != null) {
|
||||||
final int w = myWallpaper.getWidth();
|
final int w = myWallpaper.getWidth();
|
||||||
|
@ -78,9 +84,17 @@ public final class ZLAndroidPaintContext extends ZLPaintContext {
|
||||||
myCanvas.drawBitmap(myWallpaper, cw, ch, myFillPaint);
|
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[]) {
|
public void drawOutline(int[] xs, int ys[]) {
|
||||||
final int last = xs.length - 1;
|
final int last = xs.length - 1;
|
||||||
int xStart = (xs[0] + xs[last]) / 2;
|
int xStart = (xs[0] + xs[last]) / 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue