surfaceview使阴影更暗

时间:2013-12-25 14:01:59

标签: android colors surfaceview

我是图形和表面视图等新手。我听说最好在单独的线程上绘制而不是在主线程上绘制。我有2个活动,一个是使用提取视图绘制的,另一个是使用表面视图。两者都有相同的绘图代码。然而,即使在最大alpha设置(255),后者也会产生更暗的背景颜色。如果我注释掉drawargb线,我会得到一个黑色的背景。我尝试过很多东西,比如设置surfaceview对象的背景颜色,将pixelformat设置为rgb888或透明,但这些都不起作用。以下是代码:

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);

主要活动的代码是

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();
}

   }

代码有问题吗? 有没有其他方法来创建和显示除表面视图以外的图形?

0 个答案:

没有答案