iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
自我挑戰組

Android的學習歷程系列 第 23

[Day 23]Android-使用TransitionDrawable達成漸變效果

  • 分享至 

  • xImage
  •  

當遇到需要將兩張以上的圖做漸變的效果時可以使用TransitionDrawable,使用TransitionDrawable可以輕易地將A圖示逐漸變換成b圖示,或者是更多圖示的漸變效果。

首先要來取得圖片,圖片可以從drawable中取得,裡面可以是各種圖檔或者是自己新增的圖形。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#458EA0" />
    <corners android:radius="0dp"/>
</shape>

接下來宣告好自己需要的圖檔跟存放圖檔的view。

private ImageView icon, bg;
private Drawable waterfallDrawable, tornadoDrawable, whaleDrawable, waterfallBG, tornadoBG, whaleBG;

指定在layout相對應的物件。

icon = findViewById(R.id.my_icon);
bg = findViewById(R.id.my_background);

取得drawable下指定的檔案到先前宣告的物件下。

waterfallDrawable = getResources().getDrawable(R.drawable.waterfall);
whaleDrawable = getResources().getDrawable(R.drawable.whale);
tornadoDrawable = getResources().getDrawable(R.drawable.tornado);

waterfallBG = getResources().getDrawable(R.drawable.bg_waterfall);
tornadoBG = getResources().getDrawable(R.drawable.bg_tornado);
whaleBG = getResources().getDrawable(R.drawable.bg_whale);

接下來使用TransitionDrawable來改變漸變圖示

tdicon = new TransitionDrawable(new Drawable[]{waterfallDrawable, tornadoDrawable});

也可以使用兩個以上的圖示。

tdicon = new TransitionDrawable(new Drawable[]{waterfallDrawable, tornadoDrawable,waterfallBG});

最後再經過以下設置便能夠完成漸變的效果。

icon.setBackgroundDrawable(tdicon);
tdicon.setCrossFadeEnabled(true);
tdicon.startTransition(500);

setCrossFadeEnabled沒有設置的話,原先的圖示會依然顯示出來,所以如果要讓原本的圖片消失要記得設定。

startTransition漸變時間。

以上便是TransitionDrawable的基本使用方法。


上一篇
[Day 22]Android-MediaPlayer與AudioManager的使用
下一篇
[Day 24]Android-使用ItemTouchHelper滑動刪除RecyclerView
系列文
Android的學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言