我想做个图片自由在屏幕里游走的效果 ,可是图片不显示,这是为什么呀?
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();
}
}
}
}
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();
}
}
}
}
解决方案 »
- 利用intent实现activity与service之间的实时通信,可行否?
- android按号码搜索联系人
- 搭建收集数据平台后,如何收集手机数据信息
- VS2010使用Mono为什么我新建的项目中layout文件夹下的Main.axml使用设计视图浏览时出现"未能完成操作,尚未实现"
- GridLayout使用问题
- 想学习一下移动开发技术,不知道用什么工具开发,类似开发java一般用eclipse,开发win应用一般用.net什么的
- 关于url从服务器上获取图片资源
- 关于android robotium
- 在构建期间出错。 在项目“AndroidDemo”中运行构建器“Android Package Builder”时出错。 sun/misc/BASE64Enco
- Android okhttp3 rx retrofit2 编码的问题
- 【求助】本人手贱,请高人指点
- 关于图片切换的效果
// 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();
}
}
}
} 上面的代码考错了 是这个
// TODO Auto-generated method stub
im.setLayoutParams(new AbsoluteLayout.LayoutParams(im.getWidth(), im.getHeight(),left, top));
System.out.println(left);
}
该方法下面的打印方法正常,每隔5秒打印一次,可是就是不显示图片,请高手帮忙