/**
* @file Render2.java
*
* @revision: none
*
* @version 0.0.01
* @author: Zenki (zhajun), zenki2001cn@163.com
* @date: 2011-2-9 下午01:59:43
*/
package com.easyview.ebook.reader.engine.util.render;
import com.easyview.ebook.reader.engine.core.EngineCode;
import com.easyview.ebook.reader.engine.core.EngineCode.EngineMsgCode;
import com.easyview.ebook.reader.engine.model.Book;
import com.easyview.ebook.reader.engine.model.Page;
import com.easyview.ebook.reader.engine.util.Logger;
import android.graphics.Bitmap;
import android.widget.ImageView;
/**
* 2D圖像渲染引擎.
*/
public class Render2 extends BaseRender {
/** The Constant TAG. */
static private final String TAG = "Render2";
/** The m view forground. */
private ImageView mViewForground;
/** The m view background. */
private ImageView mViewBackground;
private Bitmap.Config mBitmapConfig = Bitmap.Config.RGB_565;
/**
* Instantiates a new render2.
*/
public Render2() {
init();
}
/**
* Instantiates a new render2.
*
* @param forgroundView the view
*/
public Render2(ImageView forgroundView) {
init();
mViewForground = forgroundView;
}
/* (non-Javadoc)
* @see com.easyview.ebook.reader.engine.util.render.BaseRender#init()
*/
public void init() {
Logger.vLog(TAG, "Render2.init()");
}
/**
* Sets the forground view.
*
* @param view the new forground view
*/
public void setForgroundView(ImageView view) {
mViewForground = view;
}
/**
* Sets the background view.
*
* @param view the new background view
*/
public void setBackgroundView(ImageView view) {
mViewBackground = view;
}
/* (non-Javadoc)
* @see com.easyview.ebook.reader.engine.util.render.BaseRender#showContent(com.easyview.ebook.reader.engine.model.Book)
*/
@Override
public void showContent(Book book) {
if (null == book) {
EngineCode.getInstance().setLastCode(EngineMsgCode.ENGINE_ERROR_RENDER_FAILED);
return;
}
Page page = book.getCurPage();
if (null == page) {
EngineCode.getInstance().setLastCode(EngineMsgCode.ENGINE_ERROR_RENDER_FAILED);
return;
}
Bitmap content = page.getPageContent();
if ( (null == mViewForground) || (null == content) ) {
Logger.eLog(TAG, "View = " + mViewForground + "content = " + content);
EngineCode.getInstance().setLastCode(EngineMsgCode.ENGINE_ERROR_RENDER_FAILED);
return;
}
try {
mViewForground.setImageBitmap(content);
Logger.vLog(TAG, "showContent()");
} catch (OutOfMemoryError ooe) {
Logger.eLog(TAG, "Render2.showContent()->OutOfMemoryError");
} catch (IllegalArgumentException illae) {
Logger.eLog(TAG, "Render2.showContent()->IllegalArgumentException");
}
}
/* (non-Javadoc)
* @see com.easyview.ebook.reader.engine.util.render.BaseRender#free()
*/
public void free() {
Logger.vLog(TAG, "Render2.free()");
}
/* (non-Javadoc)
* @see com.easyview.ebook.reader.engine.util.render.BaseRender#getBitmapConfig()
*/
@Override
public Bitmap.Config getBitmapConfig() {
return mBitmapConfig;
}
}