由于今天需要在開啟軟件時運行幀動畫,便將代碼放在了onCreate方法里,結(jié)果運行卡在了第一幀。
原代碼如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView iv = findViewById(R.id.iv);
iv.setBackgroundResource(R.drawable.myan);
final AnimationDrawable animationDrawable= (AnimationDrawable) iv.getBackground();
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(20);
animationDrawable.start();
}
}).start();
}
將new Thread()改成iv.post()即可,如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView iv = findViewById(R.id.iv);
iv.setBackgroundResource(R.drawable.myan);
final AnimationDrawable animationDrawable= (AnimationDrawable) iv.getBackground();
//這里修改
iv.post(new Runnable() {
@Override
public void run() {
SystemClock.sleep(20);
animationDrawable.start();
}
});
}
成功運行。
Android初學(xué)者-稀飯_言小諾