在Blackberry上启动带有进度指示器的屏幕

如何解决在Blackberry上启动带有进度指示器的屏幕

| 我正在尝试设计一个带有活动指示器的初始屏幕。 我已成功创建了初始屏幕,但未将其添加到指示器中, 当我设置其布局时,它被隐藏在图像下方。 我怎样才能解决这个问题? 这是我的代码:
package mypackage;
import java.util.Timer;
import java.util.TimerTask;

import net.rim.device.api.system.Application;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.progressindicator.ActivityIndicatorController;
import net.rim.device.api.ui.component.progressindicator.ActivityIndicatorModel;
import net.rim.device.api.ui.component.progressindicator.ActivityIndicatorView;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.VerticalFieldManager;

import net.rim.device.api.ui.container.MainScreen;
//import net.rim.device.api.ui.extension.container.EyelidFieldManager;


public final class SplashScreen extends SplashScreenPage
{


    public SplashScreen()
    {        
     super(Bitmap.getBitmapResource(\"splash-blackberry.png\"),2);
    }
}
class SplashScreenPage extends MainScreen

{   

    VerticalFieldManager vfm= new VerticalFieldManager(Field.FIELD_VCENTER);


HorizontalFieldManager hfm = new HorizontalFieldManager(Field.FIELD_VCENTER)
    {
        protected void sublayout( int maxWidth,int maxHeight )
     {
        super.sublayout(360,60);
        setExtent(360,60);

       Field field = getField(0);
       layoutChild(field,140,60);
       setPositionChild(field,100,200);
 }



    public void paint(Graphics graphics)
     {
         //Draw the background image and then call paint.

     // super.paint(graphics);
      //graphics.clear();

         // graphics.setBackgroundColor(0x000000);
          //graphics.drawBitmap(0,360,480,popup,0);

             // super.paint(graphics);
             // graphics.clear();       
         // graphics.drawBitmap(0,0);


    }               

    };





    ActivityIndicatorView view = new ActivityIndicatorView(Field.USE_ALL_WIDTH);
    ActivityIndicatorModel model = new ActivityIndicatorModel();
    ActivityIndicatorController controller = new ActivityIndicatorController();






    boolean notlogged = false;
    Bitmap popup;
    SplashScreenPage screen1 = this;
    private Timer splashTimer = new Timer();
    private TimerTask splashTask;
    int count = 0;
    int screenWidth = Display.getWidth();
    int screenHeight = Display.getHeight();
    int yCoord;
    int xCoord;
    boolean showSplash = true;
    boolean splashDisplayed = false;
    //SplashScreen page is here
    public SplashScreenPage(Bitmap popup,final int seconds) 
    {

        view.setController(controller);
        view.setModel(model);
        view.setLabel(\"Loading\");
        controller.setModel(model);
        controller.setView(view);

        model.setController(controller);        

        Bitmap bitmap = Bitmap.getBitmapResource(\"images.jpeg\");
        view.createActivityImageField(bitmap,5,Field.FIELD_BOTTOM);

      //  add(view);

   add(hfm);
    hfm.add(view);
  // add(vfm);
   // vfm.add(Bitmap.getBitmapResource(\"splash-blackberry.png\"));






          this.popup = popup;
          xCoord = (screenWidth - popup.getWidth()) / 2;
           yCoord = (screenHeight - popup.getHeight()) / 2;

            splashTask = new TimerTask() {

            public void run() {

                if (showSplash && !splashDisplayed) {
                    count++;
                    if (count == seconds * 15) {
                        showSplash = false;
                        splashDisplayed = true;
                        splashTimer.cancel();
                        invalidate();


                        synchronized (Application.getEventLock()){

                             UiApplication.getUiApplication().pushScreen(new secondscreen());
                              notlogged = true;
                             }

                       }
                }
            }
        };

       splashTimer.scheduleAtFixedRate(splashTask,100);

    }

    protected void paint(Graphics graphics) {
        super.paint(graphics);
        if (showSplash && !splashDisplayed) {
            graphics.drawBitmap(xCoord,yCoord,popup.getWidth(),popup.getHeight(),0);
           // super.paint(graphics);
           // graphics.clear();
        }
    }

    protected void onUiEngineAttached(boolean attached) {
        showSplash = true;
        invalidate();
        super.onUiEngineAttached(attached);
    }


    protected boolean navigationMovement(int dx,int dy,int status,int time) {
        return DismissSplash();
    }

    protected boolean navigationClick(int status,int time) {
        return DismissSplash();
    }

        protected boolean keyChar(char c,int time) {
        return DismissSplash();
    }

    private boolean DismissSplash() {
        if (showSplash) {
            showSplash = false;
            splashDisplayed = true;
            invalidate();
            return true;
        }else{
            return false;
        }
    }

    public void onExposed() {
           if( notlogged)
           UiApplication.getUiApplication().popScreen(this);
        }
}
    

解决方法

在要向其中添加视图的Horizo​​ntalFieldManager中,需要确保正在调用super.paint(),因为它调用了subpaint(),它将告诉其子Field(在这种情况下为view)进行绘制。我看到您已将其注释掉,所以您可能一直对此感到困惑。另外,请确保在调用super.paint()之前先进行背景绘画,以免您用自己的绘画掩盖ActivityIndi​​catorView。 您是否有可能仔细检查并清理代码(删除不重要的注释掉的代码),使其达到预期的效果,因此区分“尝试任何操作”要容易一些您可以\“代码和\”工作\“代码。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-