当前位置: 首页 > 面试题库 >

Android状态栏中的动画

上官迪
2023-03-14
问题内容

我是Android新手。我想在手机上制作 电池充电动画 ,例如,在屏幕的右上方,该小图标在充电时会上下颠倒,并以当前电池电量百分比停止显示。

到目前为止,在我的代码中,我已经能够移动它,但是它永远不会停止。

我想要的是让动画在不充电时停止播放或以当前电池电量百分比停止播放。

这是我在动画中的代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.batteryinfo);

        ImageView batteryImage = (ImageView) findViewById(R.id.BatteryImage);
        batteryImage.setBackgroundResource(R.drawable.ic_battery_animation);

        BatteryAnimation = (AnimationDrawable) batteryImage.getBackground();
        batteryImage.post(new Starter());

        textBatteryLevel = (TextView) findViewById(R.id.batterylevel_text);

        registerBatteryLevelReceiver();
    }

    class Starter implements Runnable {

        public void run() {
            BatteryAnimation.start();
        }

    }

到目前为止,我可以获得电池状态,插头类型和电池的状况。


问题答案:

入门类也应实现停止逻辑。就像是:

class Starter implements Runnable {
    boolean stopConditionMet = false;
    public void run() {
        BatteryAnimation.start();
        try {
         while (!stopConditionMet) { Thread.sleep(500); } 
        } catch (InterruptedException e) {}
         BatteryAnimation.stop();

    }
    public void stop() { stopConditionMet=true; }

}

(代替忙碌的等待,您可以使用wait()-notifyAll()方案来完成此操作。以上示例为简单起见)。

..,则需要将Starter类的实例保留在Activity中。匿名声明它不允许您在需要时更改其值。



 类似资料:
  • 我在这个问题上做了一些研究,但我找不到一个完整的解决方案,所以,一步一步,通过一些尝试和错误,我终于找到了我们如何实现这些结果:拥有一个透明或彩色的和。看我下面的回答。

  • 我使用以下布局(main_activity.xml) 具有以下样式-v21 但我仍然无法归档一个透明的状态栏 看起来像这样 但我想要这样的东西(新谷歌报摊App) 注意:我正在使用

  • 出于某种原因,状态栏现在是白色的。或者更确切地说,是灰白色,在明亮的背景下隐约可见图标的另一种白色阴影。这是错误的,因为我的应用栏布局使用蓝色阴影作为其颜色。到目前为止,这一直工作正常,我不知道我做了什么导致这种情况。我尝试手动将状态BarColor设置为colorPrimaryDark (#0277bd),但它不起作用。 我只是不知道为什么会发生这种情况。我正在粘贴我的活动的布局.xml,也许有

  • 在“新”Android4.3版中有一个新功能。屏幕顶部的状态栏在launcher中是透明的(我在Galaxy S3上使用三星TouchWiz),在其他一些应用中也是透明的(看起来有点像iOS 7风格)。你能告诉我如何在我自己的应用程序(Eclipse、Java)中使状态栏透明(或彩色)吗?

  • 我创建了许多不同类型的android状态栏通知。我想知道是否有一种方法显示状态栏图标,但没有任何项目显示在列表中,当他们下拉菜单...