亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

image.setImageResource() 什么時候在函數內設置圖像資源?

image.setImageResource() 什么時候在函數內設置圖像資源?

喵喔喔 2022-12-21 10:03:24
目標:單擊應用程序中的圖像并使其淡出以顯示不同的圖像。我的方法:使第一個圖像在 2000 毫秒后消失,然后將第一個圖像的圖像資源更改為第二個圖像以使第二個圖像出現我有一個由我的導師提供的正確解決方案,所以我不想要任何正確的解決方案。我想知道的是為什么我的解決方案不起作用,即為什么 setImageResource() 在開始時將 Image1 設置為 Image 2 盡管在最后調用它這是我創建的淡入淡出功能,單擊 image1 時會轉到該功能公共無效褪色(視圖視圖){    ImageView image1 = findViewById(R.id.image1);    image1.animate().alpha(0f).setDuration(2000);     image1.setImageResource(R.drawable.cat2);}實際輸出:我一點擊圖像 1 就變成圖像 2,然后圖像 2 逐漸消失問題:盡管在代碼末尾調用了 setImageResource(),它實際上在開頭設置了圖像資源
查看完整描述

3 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

我認為這會對您有所幫助:

淡入淡出 Java 中的 Android 動畫

所以像這樣在 onClickListener 中使用:

image1.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                image1.setVisibility(View.GONE);


                //Animation...


                image2.setVisibility(View.VISIBLE);


            }

        });


查看完整回答
反對 回復 2022-12-21
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

你永遠不會告訴image1.setImageResource(R.drawable.cat2);等待 2000 毫秒然后執行,所以 image2 一點擊它就出現了。


解決方案:image1.setImageResource(R.drawable.cat2); 2000ms后 調用


   new Handler().postDelayed(() -> {

        image1.setImageResource(R.drawable.cat2);

        }, 2000);

這可能會有所幫助。


查看完整回答
反對 回復 2022-12-21
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

動畫在您的代碼中是異步的——它不會阻塞/等待,而是啟動動畫(或者更確切地說,將要啟動的動畫排隊),然后立即執行設置圖像的下一行。如果您想在動畫完成后更新您的圖像,您可以使用withEndAction并提供回調。


image1.animate()

    .alpha(0f)

    .setDuration(2000)

    .withEndAction(new Runnable() {

      @Override

      public void run() {

        image1.setImageResource(R.drawable.cat2);

      }

    })

    .start();


查看完整回答
反對 回復 2022-12-21
  • 3 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號