动画执行问题

2015-06-16 10:36:29 +08:00
 slok

========================代码一========================

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anim);

dotImg = (ImageView) findViewById(R.id.anim_dotimg);
btn = (Button) findViewById(R.id.anim_btn);

btn.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        AlphaAnimation alphaAnim = new AlphaAnimation(0.5f, 1f);
        alphaAnim.setDuration(2000);
        dotImg.setAnimation(alphaAnim);
        alphaAnim.start();

        Log.d("test", "start anim");
    }
});

}

========================代码一========================

========================代码二========================

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anim);

dotImg = (ImageView) findViewById(R.id.anim_dotimg);
btn = (Button) findViewById(R.id.anim_btn);

btn.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        AlphaAnimation alphaAnim = new AlphaAnimation(0.5f, 1f);
        alphaAnim.setDuration(2000);
        dotImg.startAnimation(alphaAnim);

        Log.d("test", "start anim");
    }
});

}

========================代码二========================

Q1:为何代码一动画无效果?或者说不执行?
Q2:有些文章说,更新UI必须在UI主线程。那么请问一些事件,如Click、Destroy等,我如何分辨哪些事件并不是UI主线程在执行呢?

4995 次点击
所在节点    Android
5 条回复
kcworms
2015-06-16 11:28:22 +08:00
1.动画没有应用到View上
2.只要自己不采取任何手段开新线程,都是在UI线程(不确定,求指出例外)
hahasong
2015-06-16 11:31:29 +08:00
Q1:动画官方建议是用 ValueAnimator 及其子类
Q2:所有在 Activity主线程上执行的代码都属于UI线程,另起的Thread, HandleThread, AscyTask 上执行的代码属于后台线程
slok
2015-06-16 14:22:52 +08:00
@kcworms 感谢回答,动画没有应用到View上我不太明白啊,代码一的动画代码,放在onCreate却可以执行啊。
slok
2015-06-16 14:22:59 +08:00
@hahasong 谢谢
slok
2015-06-16 15:15:03 +08:00
@hahasong 可否加QQ请教?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198891

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX