-2
A
回答
0
您可以使用屬性動畫改變顏色
int colorFrom = getResources().getColor(R.color.red);
int colorTo = getResources().getColor(R.color.blue);
ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
colorAnimation.setDuration(500); // milliseconds
colorAnimation.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
textView.setBackgroundColor((int) animator.getAnimatedValue());
}
});
colorAnimation.start();
使用alpha動畫,淡入淡出的textchanging所以在重複是當它在衰落,讓您可以在那個時候更新文本
AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(500);
anim.setRepeatCount(1);
anim.setRepeatMode(Animation.REVERSE);
txtLabel.startAnimation(anim);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
txtLabel.setText("my next Text"); //for fading back in
}
});
您可以對位圖或圖像視圖上的alpha使用相同的動畫以進行脈衝輸入和輸出。
AlphaAnimation animPulse = new AlphaAnimation(1.0f, 0.0f);
animPulse.setDuration(500);
animPulse.setRepeatCount(Animation.INFINITE);
animPulse.setRepeatMode(Animation.REVERSE);
imgPulse.startAnimation(animPulse);
那當然只是把你的
public void onCreate(){
Handler mMainHandler = new Handler(Looper.prepareMainLooper());
mMainHandler.postDelay(new Runnable(){
doAnimations();
}, 1000);
}
然後簡單地把所有的動畫轉換方法和從doAnimations調用它們。祝你好運。
0
這裏你去..
我做了代碼來改變背景佈局和文本的顏色。目前我做了隨機顏色,如果你需要預定義的顏色,請讓我知道。下面是我的代碼
- activity_main.xml中
`
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="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="com.example.golevr.background_animation.MainActivity"
android:id="@+id/constraint">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
`
- MainActivity.java
`
public class MainActivity extends AppCompatActivity {
// Move your declarations here if you intend on using them after the onCreate() method
ConstraintLayout layout;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Inflate your objects
layout = (ConstraintLayout) findViewById(R.id.constraint);
textView = (TextView) findViewById(R.id.textView);
// We change the color to RED for the first time as the program loads
layout.setBackgroundColor(Color.RED);
// We change the color to GREEN for the first time as the program loads
textView.setTextColor(Color.GREEN);
// Create the timer object which will run the desired operation on a schedule or at a given time
Timer timer = new Timer();
// Create a task which the timer will execute. This should be an implementation of the TimerTask interface.
// I have created an inner class below which fits the bill.
MyTimer myTimer = new MyTimer();
// We schedule the timer task to run after 1000 ms and continue to run every 1000 ms.
timer.schedule(myTimer,1000,1000);
}
// An inner class which is an implementation of the TImerTask interface to be used by the Timer.
class MyTimer extends TimerTask{
@Override
public void run() {
// This runs in a background thread.
// We cannot call the UI from this thread, so we must call the main UI thread and pass a runnable
runOnUiThread(new Runnable() {
@Override
public void run() {
Random rand = new Random();
// The random generator creates values between [0,256) for use as RGB values used below to create a random color
// We call the RelativeLayout object and we change the color. The first parameter in argb() is the alpha.
layout.setBackgroundColor(Color.argb(255, rand.nextInt(256),rand.nextInt(256),rand.nextInt(256)));
textView.setTextColor(Color.argb(222,rand.nextInt(222),rand.nextInt(222),rand.nextInt(222)));
}
});
}
}
}
`
這是你想要的嗎?
相關問題
- 1. 動畫自動更改背景圖像
- 2. 動畫視圖背景更改
- 3. 更改背景位置沒有動畫
- 4. 畫布背景更改
- 5. 更改畫布背景
- 6. 動畫背景更新
- 7. 動態更改文字和JButton的背景
- 8. 動畫切換和背景
- 9. svg和css動畫背景
- 10. 動畫背景和內容
- 11. 在背景的SVG動畫中更改顏色文本
- 12. 更改和移動背景HTML,CSS
- 13. KSTokenView更改背景和字符集
- 14. 動態更改文本背景圖片
- 15. Android動態背景更改
- 16. 動態更改背景LinearLayout
- 17. 更改UILabel文字動畫?
- 18. 更改畫布的背景色ScaledText
- 19. 無法更改HTML 5畫布背景
- 20. 更改背景
- 21. 更改背景
- 22. 動畫背景UIImage
- 23. Hikari:背景動畫
- 24. JPanel動畫背景
- 25. colorchange動畫背景
- 26. jquery動畫背景
- 27. Jquery背景動畫
- 28. 將css背景更改爲帶有動畫的jquery的隨機背景
- 29. 改變背景時動畫RelativeLayout
- 30. 改善背景動畫顏色變化
在相同的答案中混合Java和Kotlin可能會讓經驗較少的讀者感到困惑 – Jahnold
大聲笑,謝謝jahnold。我甚至沒有意識到我做到了。我只是複製並粘貼來自不同項目的片段,然後手動鍵入onCreate片段。所以沒有意識到我從兩種不同的語言複製。我只修正了Java。謝謝你收到。 – Sam