淘宝网站开始怎么做的,wordpress个人博客主题2019,本地做网站图片怎么存,接帮人家做网站的网站1.今天为了把一个activity以dialog的形式显示#xff0c;而且实现从开始的时候从底部往上弹出#xff0c;结束的时候#xff0c;从上往下消失#xff0c;做了如下的工作。 1#xff09;如果把一个activity以dialog的形式显示#xff1f; 这个只需要设置theme的样式为*.di…1.今天为了把一个activity以dialog的形式显示而且实现从开始的时候从底部往上弹出结束的时候从上往下消失做了如下的工作。 1如果把一个activity以dialog的形式显示 这个只需要设置theme的样式为*.dialog就行了如下 在AndroidManifest.xml设置属性 activity android:name.ui.EditSlideDurationActivityandroid:labelstring/change_duration_activityandroid:themestyle/Mms.Theme.Edit.Dialog/activity Mms.Theme.Edit.Dialog 是在funui_style.xml中定义的一个style style nameMms.Theme.Edit.Dialog parentandroid:style/Theme.Funui.Dialog/style 2) 这个就能实现它以dialog的样式实现了但是这时候你会发现它是显示在屏幕的中央而且是一个小方块并不会充满这个屏幕的宽度这时候还需要进行如下的操作就是在这个activity中设置显示的位置而在这个activity的xml中设置宽度 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_width360dpandroid:layout_height165dpandroid:orientationvertical 其实还有两外一个方法就是在代码里面进行设定如下 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.mViewSpacingSpecifiedtrue;p.mViewSpacingLeft15;p.mViewSpacingRight15;p.mViewSpacingTop5;p.mViewSpacingBottom5;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 nameMms.Theme.Edit.Dialog parentandroid:style/Theme.Funui.Dialogitem nameandroid:windowAnimationStylestyle/Animation/item/stylestyle nameAnimationitem namewindowEnterAnimationanim/push_bottom_in/itemitem namewindowExitAnimationanim/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 secondsstartActivityForResult(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 nameMms.Theme.Edit.Dialog parentandroid:style/Theme.Funui.Dialogitem nameandroid:windowAnimationStylestyle/AnimBottom/item/stylestyle nameAnimBottom parentandroid:style/Animation.Activityitem nameandroid:activityOpenEnterAnimationanim/push_bottom_in/itemitem nameandroid:activityOpenExitAnimationanim/push_bottom_in/itemitem nameandroid:activityCloseExitAnimationanim/push_bottom_out/itemitem nameandroid:activityCloseEnterAnimationanim/push_bottom_out/item/style
/resources 我们可以发现这个属性引用名虽然跟前面的一样但是里面的属性却不同。然后我就用了这个方法这个方法其实是可以的。但是它设定的是启动activity跟被启动activity的关系所以你设定了它以后所有activity 的启动方式都变了这个方法失败了。 最后终于找到了一个方法如下 如下 /* Vanzo:zhangshuli on: Mon, 16 Mar 2015 20:42:26 0000*/
//这个是没有什么效果的 Overrideprotected void onDestroy() {super.onDestroy();finish();overridePendingTransition(0, R.anim.push_bottom_out);android.util.Log.e(zhangshuli, ondestroy);} //这个是关键 Overridepublic 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 version1.0 encodingutf-8?
set xmlns:androidhttp://schemas.android.com/apk/res/android translateandroid:duration3000android:fromYDelta100%pandroid:toYDelta0//set!--out.xml--
?xml version1.0 encodingutf-8?
set xmlns:androidhttp://schemas.android.com/apk/res/android translateandroid:duration3000android:fromYDelta0android:toYDelta100%p//set 这样就实现了activity以dialog的样式显示而且从底部弹出 转载于:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_anim_150316214.html