Also asked in StackOverflow here
http://stackoverflow.com/questions/12688409/android-textureview-canvas-drawing-problems
I have an app that used SurfaceView to draw dynamic 2D graphs. It worked ok
but transormations etc as we know are not supported. So I went to
TextureView. My old code used another class/thread to do the drawing via
the Surfaceholder.lockCanvas(); So I changed this to
TextureView.lockcanvas. When this runs the canvas is not accelerated (the
view is). It does not display initially but if I touch the screen it
displays??? The touch is handled by the main activity.
Obviously it works as it will display eventually but why doesn't it display
immediately?
The TextureView class implements SurfaceTextureListener as such below.
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width,
int height) {
// TODO Auto-generated method stub
isRunning = true;
mySurface = surface;
mChart.setTextureSurface(surface);
mChart.setSurfaceSize(width, height);
mPaint.setColor(ZOOM_BUTTONS_COLOR);
//mySurface.setOnFrameAvailableListener(frameready);
mChart.Redraw(true);
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
// TODO Auto-generated method stub
isRunning = false;
return false;
}
this block below also workswhen manipluating the view later on (pan and
zoom)
public void Render(Bitmap buffmap){
//mCanvas = null;
post(new Runnable() {
public void run() {
invalidate();
mySurface.updateTexImage();
}
});
The drawing from the worker thread/class is
protected void RenderCanvas(){
//mCanvas = null;
Canvas c = null;
//synchronized (mCanvas) {
//mCanvas = null;
try {
c = mChartView.lockCanvas(null);
synchronized (mCanvas) {
c.drawBitmap(buffBitmap, 0, 0, null);
}
} finally {
if (c != null) {
mChartView.unlockCanvasAndPost(c);
}
}
mChartView.Render(null);
}
Can I work like this? Non-GL content in a TextureView?
Please help desperate for an answer.
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en