Android surfaceview提供较深的阴影
我不熟悉图形和SurfaceView等。我听说在单独的线程上绘制比在主线程上绘制更好。我有两个活动,一个使用视图的ondraw绘制,另一个使用曲面视图。两者的绘图代码相同。然而,即使在最大alpha设置(255)下,后者也会提供更暗的背景颜色。如果我注释掉drawargb线,我会得到一个黑色背景。我尝试了很多方法,比如设置surfaceview对象的背景色,将pixelformat设置为rgb888或透明,但都没有成功。下面是代码:Android surfaceview提供较深的阴影,android,colors,surfaceview,Android,Colors,Surfaceview,我不熟悉图形和SurfaceView等。我听说在单独的线程上绘制比在主线程上绘制更好。我有两个活动,一个使用视图的ondraw绘制,另一个使用曲面视图。两者的绘图代码相同。然而,即使在最大alpha设置(255)下,后者也会提供更暗的背景颜色。如果我注释掉drawargb线,我会得到一个黑色背景。我尝试了很多方法,比如设置surfaceview对象的背景色,将pixelformat设置为rgb888或透明,但都没有成功。下面是代码: SurfaceHolder ourHolder;Boolean
SurfaceHolder ourHolder;Boolean isRunning=true;
Thread ourThread;ArrayList<Float> amtint=new ArrayList();float max;
String names[];String company;
public GraphSview(Context c) {
super(c);
ourHolder=getHolder();
ourThread=new Thread(this);
ourThread.start();}
public void pause(){
isRunning=false;
while(true){try {
ourThread.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}break;}ourThread=null;
}
public void Resume()
{
isRunning=true;
ourThread=new Thread(this);
ourThread.start();}
@Override
public void run() {
// TODO Auto-generated method stub
while(isRunning){
if(!ourHolder.getSurface().isValid())continue;
Canvas canvas=ourHolder.lockCanvas();
canvas.drawARGB(255, 33, 181, 238);
.... ourHolder.unlockCanvasAndPost(canvas);
代码有问题吗?
除了表面视图,还有其他创建和显示图形的方法吗?我使用bitmapfactory等工具将所需颜色的矩形bmp放在整个屏幕上,这样就解决了问题
public class GraphS extends Activity{
GraphSview ourSview;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
ourSview=new GraphSview(this);
ourSview.getHolder().setFormat(PixelFormat.TRANSPARENT);
setContentView(ourSview);
//ourSview.setBackgroundColor(0Xffffffff);
}
@Override
protected void onPause() {
ourSview.pause();
super.onPause();
}
@Override
protected void onResume() {
ourSview.Resume(); // TODO Auto-generated method stub
super.onResume();
}
}