階段一 為View設定陰影和彈出動畫(天氣應用)

2022-08-29 10:36:15 字數 1703 閱讀 8207

「階段一」是指我第一次系統地學習android開發。這主要是對我的學習過程作個記錄。

完成了應用的核心功能,接下來就要對它進行優化。今天我先優化它的部分ui和設定一些動畫。

首先,說明一下,這部分都是我現學現做的,弄的時候也挺折騰的,所以我想先把整個過程的心得分享一下。

一、實現textview帶陰影

先上效果圖

然後下面是**,這個我是根據網上的一篇教程來做的

這是乙個放在res/drawable/下的xml檔案。

下面是先把它新增到styles.xml中,然後在textview中引用這個style

說明:(1)這個裡面可以存放其它drawable物件,只不過其它物件要包括在裡面,每乙個物件就是乙個item。這種關係有點像布局檔案中布局方式和其中的view。

(2)就是畫乙個形狀出來。

(3)只有color屬性,這個標籤的作用就是用這個color填充這個形狀。

(4)只有在形狀為rectangle矩形時,才有作用,就是把矩形變成圓角。

(5)就是控制上層形狀偏移,其實這不太像偏移,因為從as的預覽效果來看,它沒有移動的感覺,而是減掉了1dp的長度。當然這預覽效果也有點怪,在裡寫乙個屬性時,能正常預覽,但寫多乙個就完全變形了。

這個實現陰影的原理是兩個相同的矩形重疊在一起,然後上層偏移,底層顯露的部分就是陰影。所以底層形狀的顏色就是陰影的顏色。上層的顏色就是textview的background顏色。

這裡的所有標籤的介紹和解釋都在下面的這個drawable中,這個是點選api guides之後出現的

二、實現textview從左向右彈出

動畫部分內容很多,我蒙了很久,才知道只需view animation中的tween animation裡的屬性就能做到我要的效果。

先在xml中設定動畫屬性

這是乙個在res/anim/下的xml檔案(anim是自己建立的資料夾)

說明:(1)這裡其實可以直接用作為根元素。

(2)是乙個可以包含其它元素的容器,類似於上面的。

(3)fromxscale="0.0",toxscale="1.0",這意思是從無到有,而且最終為正常大小,小於1.0是縮小,大於1.0是放大,所以0.0代表大小為0,1.0代表正常大小。注意這裡y軸是沒有發生變化的。因為我需要的是textview在x軸方向上從左向右彈出的效果。如果想從右開始,就把pivotx設定為100%就可以了。

(4)pivotx和pivoty="0%",這意思是動畫開始的位置,0%相當於原點,50%就是中點。座標情況跟之前講階段一:drawtext的位置問題和stroke、drawarc的相關問題

時提到的一樣,x越往右越大,y越往下越大。

(5)其實fromxscale和pivotx這兩個屬性的關係有點奇妙,好比現在我這裡的fromyscale和toyscale都是1.0,這時pivoty="0%"是沒意義的,其實刪掉這個屬性也是沒問題的,因為y軸方向沒變化,所以也就沒有所謂的開始位置。

上面的、標籤和其它屬性,都在上面api文件那圖的animation裡有詳細介紹,從那裡你會知道更多更全的有關animation的事情。

設定view的圓角 邊框 陰影

在ios開發中,任何可見檢視都是繼承於uiview的。繼承體系中,大部分uiview的屬性適用於其任何孩子。而uiview的layer屬性可以繪製uiview的各種效果。其實我們看到的view的動畫實際上也是layer在繪製。objc view plain copy cornerview layer...

iOS為UIView設定陰影效果

uiview的陰影設定主要通過uiview的layer的相關屬性來設定 陰影的顏色 im iew.layer.shadowcolor uicolor bhxyhlxtbarlackcolor cgcolor 陰影的透明度 im iew.layer.shadowopacity 0.8f 陰影的圓角 i...

xib 設定陰影 iOS為UIView設定陰影效果

uiview的陰影設定主要通過uiview的layer的相關屬性來設定 陰影的顏色 im iew.layer.shadowcolor uicolor blackcolor cgcolor 陰影的透明度 im iew.layer.shadowopacity 0.8f 陰影的圓角 im iew.laye...