文章目錄:
藍(lán)月羽:Android知識(shí)點(diǎn)文章目錄這篇我們來(lái)學(xué)習(xí)一下自定義View,實(shí)現(xiàn)一下有趣的動(dòng)畫(huà)效果,就是滾動(dòng)視圖,然后子視圖按照設(shè)定的動(dòng)畫(huà),進(jìn)入屏幕。效果圖:
演示效果https://www.zhihu.com/video/1506245364269678592ScrollChildMountAnimView :用于包裹普通子視圖來(lái)完成動(dòng)畫(huà)的視圖(偷梁換柱)
ScrollAnimChildContainerLayout :滾動(dòng)動(dòng)畫(huà)子視圖的容器
MountAnimScrollView :掛載動(dòng)畫(huà)的滾動(dòng)視圖
持有關(guān)系:
MountAnimScrollView -》ScrollAnimChildContainerLayout -》MountAnimScrollView
ScrollAnimMountCallback :滾動(dòng)視圖子視圖動(dòng)畫(huà)掛載回調(diào), 被 ScrollChildMountAnimView 實(shí)現(xiàn)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 掛載動(dòng)畫(huà)屬性-->
<declare-styleable name="ScrollChildMountAnimView_LayoutParams">
<!-- 透明度動(dòng)畫(huà)-->
<attr name="mount_anim_alpha" format="boolean" />
<!-- 縮放x動(dòng)畫(huà)-->
<attr name="mount_anim_scaleX" format="boolean" />
<!-- 縮放y動(dòng)畫(huà)-->
<attr name="mount_anim_scaleY" format="boolean" />
<!-- 背景顏色漸變動(dòng)畫(huà)開(kāi)始值-->
<attr name="mount_anim_fromBgColor" format="color" />
<!-- 背景顏色漸變動(dòng)畫(huà)結(jié)束值-->
<attr name="mount_anim_toBgColor" format="color" />
<!-- 平移動(dòng)畫(huà)-->
<attr name="mount_anim_translation" />
</declare-styleable>
<!-- 屬性 mount_anim_translation 的可選值-->
<attr name="mount_anim_translation">
<!-- 平移動(dòng)畫(huà)從頭部進(jìn)入-->
<flag name="fromTop" value="0x01" />
<!-- 平移動(dòng)畫(huà)從底部進(jìn)入-->
<flag name="fromBottom" value="0x02" />
<!-- 平移動(dòng)畫(huà)從左邊進(jìn)入-->
<flag name="fromLeft" value="0x04" />
<!-- 平移動(dòng)畫(huà)從右邊進(jìn)入-->
<flag name="fromRight" value="0x08" />
</attr>
</resources>
public interface ScrollAnimMountCallback {
/**
* 子視圖動(dòng)畫(huà)掛載(滑動(dòng)的時(shí)候會(huì)觸發(fā)該方法)
*
* @param ratio 動(dòng)畫(huà)的比例 (0~1)
*/
void onChildAnimMount(float ratio);
/**
* 子視圖動(dòng)畫(huà)卸載(就是恢復(fù)視圖原來(lái)的狀態(tài))
*/
void onChildAnimUnmount();
}
用于包裹普通子視圖來(lái)完成動(dòng)畫(huà)的視圖(偷梁換柱),實(shí)現(xiàn)了 ScrollAnimMountCallback
具體代碼:ScrollChildMountAnimView.java
3.1)在 onSizeChanged 方法進(jìn)行寬高變量的賦值和重置視圖
/**
* 當(dāng)視圖的大小發(fā)生變化時(shí),在布局期間調(diào)用。如果你剛剛被添加到視圖層次結(jié)構(gòu)中,你被調(diào)用時(shí)的舊值為0。
*
* @param w 當(dāng)前的視圖寬度
* @param h 當(dāng)前視圖的高度
* @param oldw 當(dāng)前視圖舊的寬度
* @param oldh 當(dāng)前視圖舊的高度
*/
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
currentWidth = w;
currentHeight = h;
onChildAnimUnmount();
}
3.2)在 onChildAnimMount 方法,進(jìn)行視圖的相關(guān)動(dòng)畫(huà)屬性設(shè)置
@Override
public void onChildAnimMount(float ratio) {
// 執(zhí)行視圖動(dòng)畫(huà)
// ratio:0~1
//控制自身的動(dòng)畫(huà)屬性
if (isMountAnimAlpha) {
setAlpha(ratio);
}
if (isMountAnimScaleX) {
setScaleX(ratio);
}
if (isMountAnimScaleY) {
setScaleY(ratio);
}
//判斷到底是哪一種值:fromTop,fromBottom,fromLeft,fromRight
if (isMountAnimFrom(TRANSLATION_FROM_BOTTOM)) {
setTranslationY(currentHeight * (1 - ratio)); // currentHeight ---> 0 代表原來(lái)的位置
}
if (isMountAnimFrom(TRANSLATION_FROM_TOP)) {
setTranslationY(-currentHeight * (1 - ratio)); // -currentHeight ---> 0 代表原來(lái)的位置
}
if (isMountAnimFrom(TRANSLATION_FROM_LEFT)) {
setTranslationX(currentWidth * (1 - ratio));// currentWidth ---> 0 代表原來(lái)的位置
}
if (isMountAnimFrom(TRANSLATION_FROM_RIGHT)) {
setTranslationX(-currentWidth * (1 - ratio));// -currentWidth ---> 0 代表原來(lái)的位置
}
// 顏色漸變動(dòng)畫(huà)
if (mountAnimFromBgColor != -1 && mountAnimToBgColor != -1) {
//ratio=0.5 color=中間顏色
setBackgroundColor((Integer) argbEvaluator.evaluate(ratio, mountAnimFromBgColor, mountAnimToBgColor));
}
}
滾動(dòng)動(dòng)畫(huà)子視圖的容器,這里會(huì)為布局中的普通子視圖,包裹上 ScrollChildMountAnimView ,起到偷梁換柱的效果,進(jìn)而實(shí)現(xiàn)動(dòng)畫(huà)
具體代碼:ScrollAnimChildContainerLayout.java
4.1)定義 ScrollAnimLayoutParams ,讀取自定義屬性
public static class ScrollAnimLayoutParams extends LinearLayoutCompat.LayoutParams {
public int mountAnimFromBgColor;//背景顏色變化開(kāi)始值
public int mountAnimToBgColor;//背景顏色變化結(jié)束值
public boolean isMountAnimAlpha;//是否需要透明度動(dòng)畫(huà)
public int mountAnimTranslation;//平移值
public boolean isMountAnimScaleX;//是否需要x軸方向縮放
public boolean isMountAnimScaleY;//是否需要y軸方向縮放
public ScrollAnimLayoutParams(Context context, AttributeSet attrs) {
super(context, attrs);
// 從child里面拿到我自定義的屬性
@SuppressLint("CustomViewStyleable")
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ScrollChildMountAnimView_LayoutParams);
mountAnimFromBgColor = typedArray.getInt(R.styleable.ScrollChildMountAnimView_LayoutParams_mount_anim_fromBgColor, -1);
mountAnimToBgColor = typedArray.getInt(R.styleable.ScrollChildMountAnimView_LayoutParams_mount_anim_toBgColor, -1);
isMountAnimAlpha = typedArray.getBoolean(R.styleable.ScrollChildMountAnimView_LayoutParams_mount_anim_alpha, false);
mountAnimTranslation = typedArray.getInt(R.styleable.ScrollChildMountAnimView_LayoutParams_mount_anim_translation, -1);
isMountAnimScaleX = typedArray.getBoolean(R.styleable.ScrollChildMountAnimView_LayoutParams_mount_anim_scaleX, false);
isMountAnimScaleY = typedArray.getBoolean(R.styleable.ScrollChildMountAnimView_LayoutParams_mount_anim_scaleY, false);
typedArray.recycle();
}
/**
* 釋放需要掛載動(dòng)畫(huà)
*
* @return true: 需要 false:不需要
*/
public boolean isNeedMountAnim() {
return isMountAnimAlpha ||
isMountAnimScaleX ||
isMountAnimScaleY ||
mountAnimTranslation != -1 ||
(mountAnimFromBgColor != -1 && mountAnimToBgColor != -1);
}
}
4.2)重載 generateLayoutParams 方法
當(dāng)前方法會(huì)在 LayoutInflater.from(getContext()).inflate 中被調(diào)
/**
* 參考:https://blog.csdn.net/wjr1949/article/details/105607740
* 當(dāng)前方法會(huì)被 LayoutInflater.from(getContext()).inflate 中 的 tryInflatePrecompiled 進(jìn)行調(diào)用
*
* @param attrs 屬性集合
*/
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new ScrollAnimLayoutParams(getContext(), attrs);
}
4.3)重載 addView 方法,進(jìn)行偷梁換柱
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
if (params instanceof ScrollAnimLayoutParams) {
ScrollAnimLayoutParams layoutParams = (ScrollAnimLayoutParams) params;
if (layoutParams.isNeedMountAnim()) {
ScrollChildMountAnimView newChild = generateAnimView(layoutParams);
// 將原本的視圖包進(jìn)需要執(zhí)行動(dòng)畫(huà)的視圖
newChild.addView(child);
super.addView(newChild, index, params);
} else {
// 不需要掛載動(dòng)畫(huà)
super.addView(child, index, params);
}
} else {
super.addView(child, index, params);
}
}
/**
* 生成動(dòng)畫(huà)視圖
*
* @param params 視圖的 LayoutParams
*/
private ScrollChildMountAnimView generateAnimView(ScrollAnimLayoutParams params) {
ScrollChildMountAnimView view = new ScrollChildMountAnimView(getContext());
view.setMountAnimFromBgColor(params.mountAnimFromBgColor);
view.setMountAnimToBgColor(params.mountAnimToBgColor);
view.setMountAnimScaleX(params.isMountAnimScaleX);
view.setMountAnimScaleY(params.isMountAnimScaleY);
view.setMountAnimAlpha(params.isMountAnimAlpha);
view.setMountAnimTranslation(params.mountAnimTranslation);
return view;
}
掛載動(dòng)畫(huà)的滾動(dòng)視圖,這里是真正做動(dòng)畫(huà)驅(qū)動(dòng)的類(lèi)
5.1)重載 onFinishInflate 方法,獲取 ScrollAnimChildContainerLayout,當(dāng)前方法也是在 LayoutInflater.from(getContext()) 中被調(diào)用的
// 在 LayoutInflater.from(getContext()) 中被調(diào)
@Override
protected void onFinishInflate() {
super.onFinishInflate();
containerLayout = (ScrollAnimChildContainerLayout) getChildAt(0);
}
5.2)重載 onSizeChanged 方法,將第一個(gè)視圖設(shè)置為全屏
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
// 將第一個(gè)視圖的高度設(shè)置為 ScrollView 的高度
View firstChild = containerLayout.getChildAt(0);
firstChild.getLayoutParams().height = getHeight();
}
5.3)重載 onScrollChanged 方法,去調(diào)用 ScrollAnimMountCallback 的 onChildAnimMount 和 onChildAnimUnmount 方法,從而實(shí)現(xiàn)動(dòng)畫(huà)加載和恢復(fù)
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
// 滾動(dòng)監(jiān)聽(tīng)
int scrollViewHeight = getHeight();
int childCount = containerLayout.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = containerLayout.getChildAt(i);
if (child instanceof ScrollAnimMountCallback) {
dispatchAnim(child, scrollViewHeight, t);
}
}
}
/**
* 分發(fā)動(dòng)畫(huà)
*
* @param child 子視圖
* @param scrollViewHeight ScrollView 的高度
* @param t 當(dāng)前垂直滾動(dòng)原點(diǎn)
*/
private void dispatchAnim(View child, int scrollViewHeight, int t) {
ScrollAnimMountCallback scrollAnimMountCallback = (ScrollAnimMountCallback) child;
//1.child離scrollview頂部的高度 a
int distanceTop = child.getTop();
int distanceHeight = child.getHeight();
//2.得到scrollview滑出去的高度 b 就是int t,
//3.得到child離屏幕頂部的高度 c
int distanceAbsoluteTop = distanceTop - t;
//什么時(shí)候執(zhí)行動(dòng)畫(huà)?當(dāng)child滑進(jìn)屏幕的時(shí)候
if (distanceAbsoluteTop <= scrollViewHeight) {
int visibleGap = scrollViewHeight - distanceAbsoluteTop;
//確保ratio是在0~1,超過(guò)了1 也設(shè)置為1
scrollAnimMountCallback.onChildAnimMount(clamp(visibleGap / (float) distanceHeight, 1f, 0f));
} else {//否則,就恢復(fù)到原來(lái)的位置
scrollAnimMountCallback.onChildAnimUnmount();
}
}
具體查看:activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<com.young.scrollchildanim.MountAnimScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:mountAnim="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.young.scrollchildanim.ScrollAnimChildContainerLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="600dp"
android:background="@android:color/white"
android:fontFamily="serif"
android:gravity="center"
android:padding="25dp"
android:text="公司面臨著一項(xiàng)重大抉擇,現(xiàn)在將進(jìn)行一次我們的世紀(jì)大會(huì),董事長(zhǎng)已經(jīng)各位股東各就各位。"
android:textColor="@android:color/black"
android:textSize="25sp"
tools:visibility="gone" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/meeting"
mountAnim:mount_anim_alpha="true"
android:background="#FF0000"/>
<View
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#007788"
mountAnim:mount_anim_alpha="true" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="200dp"
android:layout_height="220dp"
android:src="@drawable/boss"
mountAnim:mount_anim_alpha="true"
mountAnim:mount_anim_translation="fromLeft|fromBottom" />
<View
android:layout_width="match_parent"
android:layout_height="200dp"
mountAnim:mount_anim_fromBgColor="#ffff00"
mountAnim:mount_anim_toBgColor="#88EE66" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="220dp"
android:layout_height="310dp"
android:layout_gravity="right"
android:src="@drawable/boss"
mountAnim:mount_anim_translation="fromRight" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif"
android:gravity="center"
android:padding="20dp"
android:text="辛苦遭逢起一經(jīng),干戈寥落四周星。
山河破碎風(fēng)飄絮,身世浮沉雨打萍。
惶恐灘頭說(shuō)惶恐,零丁洋里嘆零丁。
人生自古誰(shuí)無(wú)死,留取丹心照汗青。"
android:textSize="23sp"
mountAnim:mount_anim_alpha="true"
mountAnim:mount_anim_translation="fromBottom" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src="@drawable/applause"
mountAnim:mount_anim_scaleX="true"
mountAnim:mount_anim_scaleY="true" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src="@drawable/xiemu"
mountAnim:mount_anim_translation="fromLeft|fromBottom" />
</com.young.scrollchildanim.ScrollAnimChildContainerLayout>
</com.young.scrollchildanim.MountAnimScrollView>
面試是每個(gè)求職者都要經(jīng)歷的一個(gè)重要環(huán)節(jié)。特別是對(duì)于Android測(cè)試崗位的面試,面試官通常會(huì)通過(guò)一系列的問(wèn)題來(lái)評(píng)估候選人的技術(shù)能力和經(jīng)驗(yàn)。為了幫助大家更好地準(zhǔn)備Android測(cè)試崗位的面試,本文整理了一些常見(jiàn)的Android測(cè)試崗位面試題,供大家參考。
1. 什么是Android測(cè)試?
Android測(cè)試是指在Android平臺(tái)上進(jìn)行軟件測(cè)試的過(guò)程,包括對(duì)Android應(yīng)用的功能、性能和穩(wěn)定性進(jìn)行驗(yàn)證和評(píng)估。
2. Android測(cè)試的重要性是什么?
Android測(cè)試對(duì)于保障應(yīng)用的質(zhì)量和穩(wěn)定性非常重要。它可以發(fā)現(xiàn)應(yīng)用的潛在問(wèn)題和缺陷,提高用戶(hù)體驗(yàn),減少后期修復(fù)成本。
3. Android測(cè)試中的黑盒測(cè)試和白盒測(cè)試有什么區(qū)別?
黑盒測(cè)試是指基于應(yīng)用的外部功能進(jìn)行測(cè)試,不需要了解應(yīng)用的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。而白盒測(cè)試是指基于應(yīng)用的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)進(jìn)行測(cè)試,需要了解應(yīng)用的代碼結(jié)構(gòu)和邏輯。
1. 你在Android平臺(tái)上進(jìn)行過(guò)哪些測(cè)試?
回答這個(gè)問(wèn)題時(shí),可以列舉自己在以往項(xiàng)目中進(jìn)行過(guò)的各種測(cè)試類(lèi)型,例如功能測(cè)試、性能測(cè)試、兼容性測(cè)試等。
2. 你如何進(jìn)行Android應(yīng)用的功能測(cè)試?
在功能測(cè)試中,可以通過(guò)編寫(xiě)測(cè)試用例,模擬用戶(hù)的操作場(chǎng)景,對(duì)應(yīng)用的各項(xiàng)功能進(jìn)行驗(yàn)證。可以使用JUnit框架進(jìn)行單元測(cè)試,使用Espresso框架進(jìn)行UI測(cè)試。
3. 如何進(jìn)行Android應(yīng)用的性能測(cè)試?
性能測(cè)試主要關(guān)注應(yīng)用在不同情況下的響應(yīng)速度和資源消耗情況。可以使用工具如Android Studio提供的Profiler來(lái)監(jiān)測(cè)應(yīng)用的內(nèi)存、CPU和網(wǎng)絡(luò)使用情況。
1. 在測(cè)試過(guò)程中遇到過(guò)哪些常見(jiàn)問(wèn)題?如何解決?
回答這個(gè)問(wèn)題時(shí),可以提到一些常見(jiàn)的問(wèn)題,比如應(yīng)用崩潰、性能下降、兼容性問(wèn)題等。可以通過(guò)分析日志、重現(xiàn)問(wèn)題、進(jìn)行代碼調(diào)試等方式來(lái)解決。
2. 如何處理Android應(yīng)用的兼容性問(wèn)題?
在處理兼容性問(wèn)題時(shí),可以先分析問(wèn)題出現(xiàn)的具體場(chǎng)景和條件,然后根據(jù)不同的Android版本和設(shè)備特性進(jìn)行適配和調(diào)試。
3. 在測(cè)試過(guò)程中如何保障數(shù)據(jù)的安全性?
對(duì)于涉及用戶(hù)隱私和敏感數(shù)據(jù)的應(yīng)用,保障數(shù)據(jù)的安全性尤為重要。可以采用數(shù)據(jù)加密、訪問(wèn)權(quán)限控制、網(wǎng)絡(luò)傳輸加密等方式來(lái)保護(hù)數(shù)據(jù)的安全。
1. 如何與開(kāi)發(fā)團(tuán)隊(duì)有效合作?
與開(kāi)發(fā)團(tuán)隊(duì)有效合作的關(guān)鍵是建立良好的溝通和協(xié)作機(jī)制。可以定期開(kāi)會(huì)、交流測(cè)試計(jì)劃和結(jié)果,及時(shí)報(bào)告和解決問(wèn)題,保持良好的溝通和合作。
2. 如何處理與產(chǎn)品經(jīng)理的分歧?
在與產(chǎn)品經(jīng)理存在分歧時(shí),可以通過(guò)數(shù)據(jù)和實(shí)驗(yàn)證據(jù)來(lái)支持自己的觀點(diǎn),并積極參與討論和溝通,達(dá)成共識(shí)。
3. 在團(tuán)隊(duì)中遇到合作困難時(shí),你如何解決?
在團(tuán)隊(duì)中遇到合作困難時(shí),可以積極傾聽(tīng)別人的意見(jiàn)和建議,主動(dòng)溝通解決問(wèn)題,互相支持和配合,共同解決困難。
通過(guò)本文的介紹,我們了解了Android測(cè)試崗位的一些面試題目。在準(zhǔn)備面試時(shí),我們不僅要對(duì)Android測(cè)試的基礎(chǔ)知識(shí)有所了解,還要具備一定的技術(shù)能力和解決問(wèn)題的能力,同時(shí)注重團(tuán)隊(duì)合作能力。希望大家能夠通過(guò)這些面試題目的準(zhǔn)備,更好地展示自己的優(yōu)勢(shì),順利通過(guò)Android測(cè)試崗位的面試。
動(dòng)了我的情
詞曲:郭玲
演唱:郭玲
是你動(dòng)了我的情 哎哎呦
動(dòng)動(dòng)動(dòng)動(dòng)我的心 啦啦啦
跳跳跳跳跳不停
哎呀呀哎呀呀 啦啦啦啦
我們還沒(méi)有見(jiàn)面 感覺(jué)到你要出現(xiàn)
感覺(jué)你就在我的身邊
我們距離有多遠(yuǎn) 什么時(shí)候能見(jiàn)面
感覺(jué)真的很靈驗(yàn)
是你動(dòng)了我的情 波動(dòng)了我的心
習(xí)慣聽(tīng)到你的聲音
是你動(dòng)了我的情 帶走了我的心
我們相愛(ài)永遠(yuǎn)到是最深
動(dòng)動(dòng)動(dòng)動(dòng)我的心 跳跳跳跳跳不停
原來(lái)真的愛(ài)上了你
動(dòng)動(dòng)動(dòng)動(dòng)我的心 跳跳跳跳跳不停
跟你在一起忘了我自己
動(dòng) 動(dòng) 動(dòng) 動(dòng)我的心
跳 跳 跳 跳 跳不停
原來(lái)真的愛(ài)上了你
動(dòng) 動(dòng) 動(dòng) 動(dòng)我的心
跳 跳 跳 跳 跳不停
哦愛(ài)情真的讓人很著迷
我們距離有多遠(yuǎn)
什么時(shí)候能見(jiàn)面
感覺(jué)真的很靈驗(yàn)
是你動(dòng)了我的情
溫暖了我的心
喜歡和你一起看電影
是你動(dòng)了我的情
付出了我真心
什么也擋不住緣分來(lái)臨
RAP:我們還沒(méi)有見(jiàn)面
感覺(jué)你就要出現(xiàn)
感覺(jué)你就在我的身邊
我們距離有多遠(yuǎn)
什么時(shí)候能見(jiàn)面
感覺(jué)真的好好靈驗(yàn)噢
動(dòng) 動(dòng) 動(dòng) 動(dòng) 我的心
跳 跳 跳 跳 跳不停
原來(lái)真的愛(ài)上了你
動(dòng) 動(dòng) 動(dòng) 動(dòng)我的心
跳 跳 跳 跳 跳不停
跟你在一起忘了我自己
動(dòng) 動(dòng) 動(dòng) 動(dòng)我的心
跳 跳 跳 跳 跳不停
原來(lái)真的愛(ài)上了你
動(dòng) 動(dòng) 動(dòng) 動(dòng)我的心
跳 跳 跳 跳 跳不停
什么也擋不住緣分來(lái)臨
動(dòng) 動(dòng) 動(dòng) 動(dòng) 我的心
跳 跳 跳 跳 跳不停
原來(lái)真的愛(ài)上了你
動(dòng) 動(dòng) 動(dòng) 動(dòng)我的心
跳 跳 跳 跳 跳不停
跟你在一起忘了我自己
嗚呀呀呀
哦咿呀咿呀
哦什么也擋不住緣分的來(lái)臨
動(dòng)動(dòng)動(dòng)動(dòng)我的心
根據(jù)我多年看歌詞猜歌經(jīng)驗(yàn)一定是Es Rappelt Im Karton,如果我說(shuō)對(duì)了請(qǐng)給我點(diǎn)贊。
如果錯(cuò)了希望題主下次寫(xiě)歌詞求歌的時(shí)候不要打標(biāo)點(diǎn),因?yàn)槟莻€(gè)逗號(hào)影響了我90%的功力《動(dòng)動(dòng)小手動(dòng)動(dòng)小腳》是一首經(jīng)典的兒歌,它鼓勵(lì)孩子們積極參與動(dòng)作。歌詞簡(jiǎn)單易懂,旋律歡快動(dòng)聽(tīng)。通過(guò)唱歌和跳舞,孩子們可以鍛煉身體,培養(yǎng)協(xié)調(diào)性和節(jié)奏感。
這首兒歌不僅能夠增強(qiáng)孩子們的體能,還能夠激發(fā)他們的想象力和創(chuàng)造力。同時(shí),它也是一種親子互動(dòng)的方式,家長(zhǎng)可以和孩子一起唱唱跳跳,增進(jìn)親子關(guān)系。總之,這首兒歌是孩子們成長(zhǎng)過(guò)程中的一份美好回憶,也是他們快樂(lè)童年的一部分。
2003年10月,Andy Rubin等人創(chuàng)建Android公司,并組建Android團(tuán)隊(duì)。
2005年8月17日,Google低調(diào)收購(gòu)了成立僅22個(gè)月的高科技企業(yè)Android及其團(tuán)隊(duì)。安迪魯賓成為Google公司工程部副總裁,繼續(xù)負(fù)責(zé)Android項(xiàng)目。
2007年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個(gè)全球性的聯(lián)盟組織,該組織由34家手機(jī)制造商、軟件開(kāi)發(fā)商、電信運(yùn)營(yíng)商以及芯片制造商共同組成。
并與84家硬件制造商、軟件開(kāi)發(fā)商及電信營(yíng)運(yùn)商組成開(kāi)放手持設(shè)備聯(lián)盟來(lái)共同研發(fā)改良Android系統(tǒng),這一聯(lián)盟將支持谷歌發(fā)布的手機(jī)操作系統(tǒng)以及應(yīng)用軟件,Google以Apache免費(fèi)開(kāi)源許可證的授權(quán)方式,發(fā)布了Android的源代碼。
2008年,在GoogleI/O大會(huì)上,谷歌提出了AndroidHAL架構(gòu)圖,在同年8月18號(hào),Android獲得了美國(guó)聯(lián)邦通信委員會(huì)(FCC)的批準(zhǔn),在2008年9月,谷歌正式發(fā)布了Android 1.0系統(tǒng),這也是Android系統(tǒng)最早的版本。
心跳跳愛(ài)動(dòng)動(dòng)
作曲:林偉文
作詞:柳佳佳
演唱:柳佳佳
編曲:熊光焰 林偉文
錄音 混音:林偉文 呂漢釗
說(shuō)聲愛(ài)你愛(ài)你永久
我撥通電話想對(duì)你說(shuō)開(kāi)不了口
說(shuō)聲想你想到發(fā)呆
說(shuō)聲一心一意一生一世陪伴你
現(xiàn)實(shí)的世界讓我糾結(jié)
面包與愛(ài)情之間如何選擇
大聲對(duì)你說(shuō) I LOVE YOU
只想說(shuō)愛(ài)你愛(ài)你直到永遠(yuǎn)
心跳跳愛(ài)動(dòng)動(dòng)
我一分一秒一分一秒放縱自己
心跳跳愛(ài)動(dòng)動(dòng)
愛(ài)你不需不要不需不要什么理由
說(shuō)聲愛(ài)你愛(ài)你永久
我撥通電話想對(duì)你說(shuō)開(kāi)不了口
說(shuō)聲想你想到發(fā)呆
說(shuō)聲一心一意一生一世陪伴你
現(xiàn)實(shí)的世界讓我糾結(jié)
面包與愛(ài)情之間如何選擇
大聲對(duì)你說(shuō) I LOVE YOU
只想說(shuō)愛(ài)你愛(ài)你直到永遠(yuǎn)
心跳跳愛(ài)動(dòng)動(dòng)
我一分一秒一分一秒放縱自己
心跳跳愛(ài)動(dòng)動(dòng)
愛(ài)你不需不要不需不要什么理由
心跳跳愛(ài)動(dòng)動(dòng)
我一分一秒一分一秒放縱自己
心跳跳愛(ài)動(dòng)動(dòng)
愛(ài)你不需不要不需不要什么理由
現(xiàn)實(shí)的世界讓我糾結(jié)
面包與愛(ài)情之間如何選擇
大聲說(shuō)愛(ài)你
心跳跳愛(ài)動(dòng)動(dòng)
兩個(gè)人世界更精彩
答:蠢蠢欲動(dòng)。
詳細(xì)解釋?zhuān)?/p>
發(fā)音:chǔn chǔn yù dònɡ
釋義:
蠢蠢:爬蟲(chóng)蠕動(dòng)的樣子。形容像蟲(chóng)子一樣開(kāi)始動(dòng)彈。比喻敵人策劃準(zhǔn)備進(jìn)攻;或壞人準(zhǔn)備搗亂破壞。
擴(kuò)展資料:
出處:
南朝 宋 劉敬叔《異苑 句容水脈》:“掘得一黑物,無(wú)有首尾,形如數(shù)百斛舡,長(zhǎng)數(shù)十丈,蠢蠢而動(dòng)。”
例句:
正如她所預(yù)料的,獸人們已經(jīng)蠢蠢欲動(dòng)了。
近義:
躍躍欲試
1、打開(kāi)flash 軟件,點(diǎn)擊我的文檔,打開(kāi)工作界面。點(diǎn)擊屬性面板,把編輯界面的顏色為黑色。左鍵對(duì)準(zhǔn)矩形工具,按住不動(dòng),這時(shí)候就出現(xiàn)一個(gè)小工具面板,在里面選擇“多角星形工具”。在屬性面板里找到<<選項(xiàng)>>.然后點(diǎn)擊選項(xiàng),多邊形改成《星形》。《星形頂角大小》改成《0.20>.《邊數(shù)》改成《4》。顏色改成《放射狀》。顏色為灰色。在編輯區(qū)內(nèi)畫(huà)一個(gè),4變形的星形。
2、畫(huà)完以后,點(diǎn)擊第一幀再點(diǎn)擊上面的《修改》《分離》然后點(diǎn)擊第十幀插入關(guān)鍵幀。同樣點(diǎn)擊修改--分離。然后調(diào)整透明度為零。
3、再點(diǎn)擊第20幀,右鍵點(diǎn)擊插入關(guān)鍵幀,同樣點(diǎn)擊修改--分離,調(diào)整透明度為100.。然后點(diǎn)擊第10幀,添加形狀補(bǔ)間。點(diǎn)擊第20幀,添加形狀補(bǔ)間動(dòng)畫(huà)。然后測(cè)試影片,保存為jif動(dòng)畫(huà)。
4、點(diǎn)擊第5幀,在屬性面板,《補(bǔ)間》里點(diǎn)擊形狀補(bǔ)間。再點(diǎn)擊第15幀,在下面的《補(bǔ)間》里點(diǎn)擊形狀補(bǔ)間。然后點(diǎn)擊《控制》測(cè)試影片,保存為gif 動(dòng)畫(huà)。
勞動(dòng)可以作為名詞,如勞動(dòng)是光榮的。也可以作為動(dòng)詞,如大人們都在地里勞動(dòng)