我想做个图片自由在屏幕里游走的效果 ,可是图片不显示,这是为什么呀?
public class AutoMove extends Activity {
// public static int count=0;
private ImageView im;
private Handler handler;
int dx=1,dy=1,left=0,top=0;
int getWidth,getHeight;
private  boolean isRuning=true;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      //  setContentView(new Move(this));
        setContentView(R.layout.main);
    
        im=(ImageView)findViewById(R.id.im);
        im.setBackgroundResource(R.drawable.no2);
        handler=new Handler();
        new Thread(this).start();
        DisplayMetrics dm=new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        getHeight=dm.heightPixels;
        getWidth=dm.widthPixels;
        System.out.println("3");
    }
public void run() {
// TODO Auto-generated method stub
while(isRuning){
dx=left<0||(left+im.getWidth())>getWidth?-dx:dx;
dy=top<0||(top+im.getHeight())>getHeight?-dy:dy;
left+=dx;
top+=dy;
// System.out.println(left);
handler.post(new Runnable() {


public void run() {
// TODO Auto-generated method stub
im.setLayoutParams(new AbsoluteLayout.LayoutParams(im.getWidth(), im.getHeight(),left, top));
System.out.println(left);
}
});
try{
Thread.sleep(5000);
}catch(InterruptedException e){
e.printStackTrace();
}
}  
}
}

解决方案 »

  1.   

    public class AutoMove extends Activity implements Runnable {
    // public static int count=0;
    private ImageView im;
    private Handler handler;
    int dx=1,dy=1,left=0,top=0;
    int getWidth,getHeight;
    private  boolean isRuning=true;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
          //  setContentView(new Move(this));
            setContentView(R.layout.main);
        
            im=(ImageView)findViewById(R.id.im);
            im.setBackgroundResource(R.drawable.no2);
            handler=new Handler();
            new Thread(this).start();
            DisplayMetrics dm=new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);
            getHeight=dm.heightPixels;
            getWidth=dm.widthPixels;
            System.out.println("3");
        }
    public void run() {
    // TODO Auto-generated method stub
    while(isRuning){
    dx=left<0||(left+im.getWidth())>getWidth?-dx:dx;
    dy=top<0||(top+im.getHeight())>getHeight?-dy:dy;
    left+=dx;
    top+=dy;
    // System.out.println(left);
    handler.post(new Runnable() {


    public void run() {
    // TODO Auto-generated method stub
    im.setLayoutParams(new AbsoluteLayout.LayoutParams(im.getWidth(), im.getHeight(),left, top));
    System.out.println(left);
    }
    });
    try{
    Thread.sleep(5000);
    }catch(InterruptedException e){
    e.printStackTrace();
    }
    }  
    }
    } 上面的代码考错了  是这个
      

  2.   

    public void run() {
    // TODO Auto-generated method stub 
    im.setLayoutParams(new AbsoluteLayout.LayoutParams(im.getWidth(), im.getHeight(),left, top));
    System.out.println(left);
    }
    该方法下面的打印方法正常,每隔5秒打印一次,可是就是不显示图片,请高手帮忙