为什么ImageView不适合我? Android的

时间:2016-01-30 16:55:36

标签: java android view static imageview

我的代码如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //landscape
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        setContentView(R.layout.activity_game);

        //initialize arks
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                initializeArks();
            }
        }, 2000);
    }

没有什么特别的,这里有initializeArks():

    public void initializeArks(){
        iv= (ImageView) findViewById(R.id.imageView);
        tw= (TypeWriter) findViewById(R.id.textView);
CountDownTimer timer = new CountDownTimer(10, 1000) {

            public void onTick(long millisUntilFinished) {

            }

            public void onFinish() {
                iv.setImageResource(R.drawable.loading);
            }
        }.start();

    }

请记住,此代码仅用于调试,它没有做任何特定的事情,但正如我发现问题是使用ImageView

此外,我将变量声明为STATIC,以便在其他类中使用它们:

    public static ImageView iv;
    public static TypeWriter tw;

我的XML是基本的:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/imageView"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

如果有人向我解释为什么这不起作用或者会向我发送一个工作代码片段,我只能用于一个目的:显示图像,我将不胜感激。

一旦我在我的手机上安装应用程序并打开它,我等了4秒钟(这就是我用上面的代码推迟了多少)而且它只是崩溃了

4 个答案:

答案 0 :(得分:0)

我认为你应该执行

if ($('.a_class').attr('src').indexOf('jpg') == -1 
    && $('.b_class').attr('src').indexOf('jpg') == -1) {

    $('.a_class').attr('src', '/folder/default_img.JPG');
}

在UI内部。 Look at this answer

答案 1 :(得分:0)

Sat, 30 Jan 2016 12:23:53 +0100方法中初始化您的imageview而不是onCreate()方法,并且不要将它们声明为静态,如下所示:

initializeArks()

并将变量声明为

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //landscape
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        setContentView(R.layout.activity_game);

        iv= (ImageView) findViewById(R.id.imageView); //<==== initialise in onCreate
        tw= (TypeWriter) findViewById(R.id.textView);

        //initialize arks
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                initializeArks();
            }
        }, 2000);
    }

答案 2 :(得分:0)

我无法找到一种方法来实现我想要的东西,所以我查看了大图,我的场景让我没有ImageView。幸运的是,更改布局背景对我来说很有用,它对我的​​项目没有任何负面影响。谢谢你浪费时间在这里

答案 3 :(得分:0)

好像你没有在UI线程上运行。 尝试在你的线程内运行:

runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        initializeArks();
                    }
                });