携帯電話でスクリーンショットを撮るときのような画面効果を作成したいのですが、ボタンをクリックすると画面が少し点滅し、その点滅の色も変更したいと思います。それは可能ですか?事前にどうもありがとうございました ;)
質問する
3626 次
3 に答える
13
この効果を得る簡単な方法は、次のようにすることです。
レイアウト上に空の「パネル」を作成します。例えば:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<!-- Your normal layout in here, doesn't have to be a LinearLayout -->
</LinearLayout>
<FrameLayout
android:id="@+id/pnlFlash"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="[Set to your desired flash colour, image, etc]"
android:visibility="gone"
/>
</FrameLayout>
ID が「pnlFlash」の FrameLayout は非表示のままであるため、通常の操作を妨げません。
フラッシュを作成したい場合は、必要なだけパネルを表示するだけです。素敵なフェードオフも常に役立ちます。
pnlFlash.setVisibility(View.VISIBLE);
AlphaAnimation fade = new AlphaAnimation(1, 0);
fade.setDuration(50);
fade.setAnimationListener(new AnimationListener() {
...
@Override
public void onAnimationEnd(Animation anim) {
pnlFlash.setVisibility(View.GONE);
}
...
});
pnlFlash.startAnimation(fade);
この種のコードをフラッシュに使用したことがないので、それに応じて持続時間を微調整することをお勧めします。
于 2012-05-07T00:11:31.723 に答える
-1
View.GONE onAnimationEnd の代わりに View.VISIBLE を追加します。
fade.setAnimationListener(new AnimationListener() {
...
@Override
public void onAnimationEnd(Animation anim) {
pnlFlash.setVisibility(View.VISIBLE);
}
...
});
pnlFlash.startAnimation(fade);
于 2014-09-23T20:44:18.623 に答える