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

Reply via email to