【问题标题】:Drawable not displayed不显示可绘制对象
【发布时间】:2011-10-20 09:03:42
【问题描述】:

为什么不显示mImage?

public class Manager extends Thread{
    private SurfaceHolder mSurfaceHolder;
    private boolean mRunning;



public Drawable mImage;
public Manager(SurfaceHolder surfaceHolder, Context context){

     mSurfaceHolder = surfaceHolder;
     mRunning = false;

     Resources res = context.getResources();


         mImage = res.getDrawable(R.drawable.nhero2);


  public void setRunning(boolean running)
   {
       mRunning = running;
   }

   public void run()
   {
       while (mRunning)
       {
           Canvas canvas = null;
           try
           {
               // подготовка Canvas-а
               canvas = mSurfaceHolder.lockCanvas();
               synchronized (mSurfaceHolder)
               {
                   // собственно рисование
                   //doDraw(canvas);
                   mImage.draw(canvas);
               }
           }
           catch (Exception e) { }
           finally
           {
               if (canvas != null)
               {
                   mSurfaceHolder.unlockCanvasAndPost(canvas);
               }
           }
       }
   }
}

附:抱歉 4 我的英语

附言 我试图创建我自己的 scrool 射手哈哈 完整代码在这里(对于坏的 cmets 抱歉) 班主任http://pastebin.com/Sjd57uqT 类视图和类scrollBckgr http://pastebin.com/A5u5UJea

【问题讨论】:

标签: java android drawable


【解决方案1】:

你需要调用 mImage.setBounds(...);否则画布不知道在哪里绘制 Drawable。

【讨论】:

    【解决方案2】:

    我认为您遇到的主要问题是,一旦您使用.start(); 启动线程,布尔值mRunning 就会为假,线程将立即结束。当您在线程启动后尝试调用.setRunning(true); 时,它不会有任何效果,因为线程已经完成。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2011-11-20
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多