日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

activity-启动动画的设定(下面弹出出现,弹入下面消失)

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 activity-启动动画的设定(下面弹出出现,弹入下面消失) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.今天為了把一個activity以dialog的形式顯示,而且實現從開始的時候從底部往上彈出,結束的時候,從上往下消失,做了如下的工作。

1)如果把一個activity以dialog的形式顯示?

這個只需要設置theme的樣式為*.dialog就行了,如下 在AndroidManifest.xml設置屬性

<activity android:name=".ui.EditSlideDurationActivity"android:label="@string/change_duration_activity"android:theme="@style/Mms.Theme.Edit.Dialog"></activity>

?

Mms.Theme.Edit.Dialog ??是在funui_style.xml中定義的一個style

<style name="Mms.Theme.Edit.Dialog" parent="@android:style/Theme.Funui.Dialog"></style>

2) 這個就能實現它以dialog的樣式實現了,但是這時候你會發現,它是顯示在屏幕的中央,而且是一個小方塊,并不會充滿這個屏幕的寬度,這時候還需要進行如下的操作,就是在這個activity中設置顯示的位置,而在這個activity的xml中設置寬度

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="360dp"android:layout_height="165dp"android:orientation="vertical" >

?

其實,還有兩外一個方法,就是在代碼里面進行設定,如下

import android.view.Window; import android.view.WindowManager; //在oncreate里添加如下代碼Window w = getWindow();WindowManager.LayoutParams attrs = w.getAttributes();attrs.width = WindowManager.LayoutParams.MATCH_PARENT;w.setAttributes(attrs);

?注意:上面的代碼,必須用在dialog 創建完成以后,如下

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(TAG,"StorageDefaultPathDialog onCreate()");mSDCardStateFilter = new IntentFilter(SD_ACTION);mSDCardStateFilter.addDataScheme("file");mReceiver = mSDStateReceiver;mInsertOtg = getIntent().getBooleanExtra(INSERT_OTG, false); //放在這里是沒有效果的 createDialog(); /* Vanzo:zhangshuli on: Thu, 02 Jul 2015 16:11:42 +0800*/Window w = getWindow();WindowManager.LayoutParams attrs = w.getAttributes();attrs.width = WindowManager.LayoutParams.MATCH_PARENT;w.setAttributes(attrs); // End of Vanzo: zhangshuli } private void createDialog() {final AlertController.AlertParams p = mAlertParams;p.mTitle = mInsertOtg ? getString(com.mediatek.internal.R.string.usb_storage_ready_title) : getString(com.mediatek.internal.R.string.sdcard_ready_title);p.mView = createView();p.mViewSpacingSpecified=true;p.mViewSpacingLeft=15;p.mViewSpacingRight=15;p.mViewSpacingTop=5;p.mViewSpacingBottom=5;p.mPositiveButtonText = getString(android.R.string.yes);p.mPositiveButtonListener = this;p.mNegativeButtonText = getString(android.R.string.no);p.mNegativeButtonListener = this;setupAlert();}

?

另外,在代碼中添加一個位置顯示設置

import android.view.Gravity;@Overrideprotected void onCreate(Bundle icicle) {super.onCreate(icicle);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.edit_slide_duration); /* Vanzo:zhangshuli on: Mon, 16 Mar 2015 16:29:50 +0000*/getWindow().setGravity(Gravity.BOTTOM); // End of Vanzo: zhangshuli }

這時候確實是能夠實現activity以充滿屏幕寬度和在屏幕底部的方式存在。

?

3)動畫效果添加

最開始是看得網上的方法,如下

?

<style name="Mms.Theme.Edit.Dialog" parent="@android:style/Theme.Funui.Dialog"><item name="android:windowAnimationStyle">@style/Animation</item></style><style name="Animation"><item name="windowEnterAnimation">@anim/push_bottom_in</item><item name="windowExitAnimation">@anim/push_bottom_out</item></style>

這個方法看起來似乎有點效果,但是,你會發現,它其實是在動畫退出的時候閃爍一下。后來想著是不是因為在代碼中設置才可以消除,因為感覺可能是跟activity轉變為dialog以后顯示有沖突呢

代碼中設置的話,需要用到以下方法

overridePendingTransition(0, R.anim.push_bottom_out);

第一個參數:是即將出現的那個activity的動畫效果
第二個參數:是即將消息的activity的動畫效果

代碼如下,也就是在啟動它的地方添加動畫,注意一定要在啟動以后添加動畫

builder.setSingleChoiceItems(arrayAdapter, checkedItem,new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {if ((which >= 0) && (which < NUM_DIRECT_DURATIONS)) {mSlideshowEditor.changeDuration(mPosition, (which + 1) * 1000);} else {Intent intent = new Intent(SlideEditorActivity.this,EditSlideDurationActivity.class);intent.putExtra(EditSlideDurationActivity.SLIDE_INDEX, mPosition);intent.putExtra(EditSlideDurationActivity.SLIDE_TOTAL,mSlideshowModel.size());intent.putExtra(EditSlideDurationActivity.SLIDE_DUR, dur); // in seconds startActivityForResult(intent, REQUEST_CODE_CHANGE_DURATION); /* Vanzo:zhangshuli on: Tue, 17 Mar 2015 11:00:57 +0000*/overridePendingTransition(R.anim.push_bottom_in, 0) // End of Vanzo: zhangshuli}

?

結果發現還是沒有效果

后來又在網上找了如下的方法,

<style name="Mms.Theme.Edit.Dialog" parent="@android:style/Theme.Funui.Dialog"><item name="android:windowAnimationStyle">@style/AnimBottom</item></style><style name="AnimBottom" parent="@android:style/Animation.Activity"><item name="android:activityOpenEnterAnimation">@anim/push_bottom_in</item><item name="android:activityOpenExitAnimation">@anim/push_bottom_in</item><item name="android:activityCloseExitAnimation">@anim/push_bottom_out</item><item name="android:activityCloseEnterAnimation">@anim/push_bottom_out</item></style> </resources>

我們可以發現這個屬性引用名雖然跟前面的一樣,但是里面的屬性卻不同。然后我就用了這個方法,這個方法其實是可以的。但是,它設定的是啟動activity跟被啟動activity的關系,所以你設定了它以后,所有activity

的啟動方式都變了,這個方法失敗了。

最后,終于找到了一個方法,如下

如下

?

/* Vanzo:zhangshuli on: Mon, 16 Mar 2015 20:42:26 +0000*/ //這個是沒有什么效果的
@Override
protected void onDestroy() {super.onDestroy();finish();overridePendingTransition(0, R.anim.push_bottom_out);android.util.Log.e("zhangshuli", "ondestroy");}
//這個是關鍵 @Override
public void finish() {super.finish();overridePendingTransition(0, R.anim.push_bottom_out);android.util.Log.e("zhangshuli", "finish");} // End of Vanzo: zhangshuli

也就是說,要想這個overridePendingTransition(0, R.anim.push_bottom_out); 有效果,它必須放在startactivity() 或者finish()的后面,而且只生效一次

?動畫如下

<!--in.xml--><?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="3000"android:fromYDelta="100%p"android:toYDelta="0"/></set><!--out.xml--> <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="3000"android:fromYDelta="0"android:toYDelta="100%p"/></set>

這樣就實現了activity以dialog的樣式顯示,而且從底部彈出

?

轉載于:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_anim_150316214.html

總結

以上是生活随笔為你收集整理的activity-启动动画的设定(下面弹出出现,弹入下面消失)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99热精品免费 | www.亚洲国产 | 中文字幕日韩国产 | 精品777 | 免费在线看黄网站 | 欧美日韩一区二区视频观看 | 91日本精品 | 久久精品无码Av中文字幕 | 黑人一级黄色片 | 91福利在线视频 | 亚洲一区 在线播放 | 动漫av一区二区 | 日韩aaaaa | 美女视频一区二区 | 日韩av成人在线观看 | 免费成人美女在线观看 | 你懂的亚洲 | 法国性xxxx精品hd | 轻轻色在线观看 | 国产人成一区二区三区影院 | 老妇女性较大毛片 | 国产美女永久免费无遮挡 | 久草网视频 | 性欧美一区二区三区 | 久久aaa| aa视频网站| 处破女av一区二区 | 成人性色生活片 | jizz性欧美2 视频在线日韩 | 亚洲一区在线免费 | 中文字幕一区二区三区在线视频 | 亚洲综合伊人久久 | 三级黄毛片 | xxx日韩 | 亚洲天堂欧美在线 | www.自拍| 成年人在线视频 | 午夜久久 | 色吧视频| 五月天综合社区 | 久久99久久99精品中文字幕 | 国产对白自拍 | 特黄视频在线观看 | 免费的黄色片 | 国产成人精品无码免费看夜聊软件 | 亚洲av毛片一区二二区三三区 | 中文字幕人妻丝袜乱一区三区 | 亚洲自拍第二页 | 亚洲 欧美 日韩 在线 | 息与子五十路翔田千里 | 性奶老妇 视频 | 色多多在线看 | 国产精品一区一区三区 | 男人av影院 | 色屁屁一区二区三区视频 | 成人国产精品免费观看 | 美女视频一区二区 | 国产精品传媒视频 | 国产成人自拍在线 | 久久天堂电影 | 成年人观看视频 | gay男互凵gay男同偷精 | 四虎永久免费观看 | 免费人成视频在线播放 | 国产精品自产拍高潮在线观看 | 久久草视频在线 | 人妻丰满熟妇av无码区免 | 国产91边播边对白在线 | 成人区精品一区二区婷婷 | 在线看国产 | 亚洲午夜精品一区二区 | 国产精品白嫩极品美女视频 | 97免费在线观看 | 河北彩花av在线播放 | 在线观看av网 | 欧美一级免费看 | 日日噜噜夜夜狠狠久久波多野 | 最近中文字幕在线观看 | 69视频国产 | 天天摸天天碰天天爽天天弄 | 国产成人欧美一区二区三区的 | 中文字幕在线观看国产 | 国产v亚洲 | 国产亚洲黄色片 | 国产原创剧情av | 国产久精品 | 国产成人一区 | 日韩在线免费观看视频 | 超碰在线色 | 在线久草| 麻豆三级| 国产成人一区二区 | 黄色aa大片| 天天操人人 | 性生交生活片1 | 中文天堂在线观看 | 亚洲色图视频在线观看 | 免费超碰在线观看 | 成人做爰黄 |