Android 文件夹目录、当前日期、屏幕高度、Activity切换

1:getCacheDir()方法用于获取/data/data/项目的包名/cache目录,系统自动将应用中需要缓存的资源缓存到这个目录。
2:getFilesDir()方法用于获取/data/data/项目的包名/files目录,如果没有创建特定的文件夹,我们可以通过此方法来将文件存储到此目录下。
3:将文件写入SD卡内:
获取SDCard的状态:Environment.getExtemalStorageState() 如果等于EnvironmentMEDIA_MOUNTED,说明手机装有SDCard,并且可以进行读写
获取SDCard的目录:Environment.getExtemalStorageDirectory()

File saveFile=new File("/sdcard/zhzhg.txt");或:File sdCardDir=new File("/sdcard");通过手动指定目录也可以获得sdcard的目录,但是不建议这样做,因为假如Android后续版本改动了sdcard的目录的话,程序可能崩溃,建议采用系统的Environment.getExtemalStorageDirectory()方法得到目录。

下面举一个小例子:

File saveFile-new File(sdCardDir,"zhzhg.txt");//第一个参数为文件夹路径,第二个为文件的名称
FileOutputStream outStream = new FileOutputStream(saveFile);//根据路径创建文件流
outStream.write("文件的读写".getBytes());
outStream.close();

4:下面的小笔记为获得当前时间字符串的方法

public static String getDateStr(long t,String splitStr){//时间的毫秒,日期分割字符串,例如可以是“-”或“.”等

StringBuilder sb = new StringBuilder();//创建StringBuilder
Calendar calendar = Calendar.getInstance();//得到Calendar的实例
calendar.setTimeInMillis(t);//将毫秒数设置进calendar中
int year = calendar.get(Calendar.YEAR);//得到当前年
int month = calendar.get(Calendar.MONTH) + 1;//一年中的第一个月为january,为0
int day = calendar.get(Calendar.DAY_OF_MONTH);//得到当天为该月中的第几天
sb.append(year).append(splitStr).append(month).append(splitStr).append(day);//组织字符串
return sb.toString();//返回字符串
}
5:屏幕宽度、高度、状态栏高度、标题栏高度,资料参考 http://www.iteye.com/topic/828830
      通过View提供的方法获取高度方式有两种:
       (1)当前显示的view中直接获取当前view高宽

        (2)通过Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)获取系统当前显示的view根(是一个framelayout对象),android绘制会将要绘制的 view放置在framelayout中绘制。

下图给出屏幕高度、应用高度、根View高度

 

View获取屏幕参数值的方法:

Display对象获取屏幕高宽 :

获取display对象 Activity中getWindowManager().getDefaultDisplay()
getWidth() 返回显示界面宽度即屏幕宽度
getHeight() 返回显示界面高度即屏幕高度
或者WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();//屏幕宽度
int height = wm.getDefaultDisplay().getHeight();//屏幕高度

由display对象设置DisplayMetrics高宽值,通过DisplayMetrics对象获取屏幕高宽,有点多此一举 :

getWidth() 返回显示界面宽度即屏幕宽度
getHeight() 返回显示界面高度即屏幕高度
 


常用一些值计算:


屏幕高宽 
Canvas对象 、display对象和DisplayMetrics可获取屏幕的高宽


状态栏高度 
View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect后,outRect.top()即是状态栏高度


标题高度 
View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect后,outRect.height()-view.getheight()即是标题高度。


绘制区域高宽 
方法诸多 随便用
 


6:
 Animation有四种,scale,rotate,translate,alpha,而Activity之间的跳转有两种。
一种是overPendingTransition,传入in和out的animation文件,Activity转换的时候就可以显示动画了,一个是Activity进来的动画,一个是Activity销毁的动画,而且这个动画必须在startActivity或者finish函数之后调用才有效果。
另外一种是通过Theme的方式来进行Animation的设置的。
其中要了解有四个属性,都是Window类里面的属性:
activityOpenEnterAnimation:当打开一个新的Activity,这Animation就会作用于接下来进入屏幕的Activity
activityOpenExitAnimation:当打开一个新的Activity,这Animation就会作用于接下来退出屏幕的Activity
activityCloseEnterAnimation: 当关闭现在的Activity,这个Animation就会作用于接下来的进入屏幕的Activity
activityCloseExitAnimation:当关闭现在的Activity,这个Animation就会作用于接下来的要退出屏幕的Activity
即,当启动一个Activity的时候,activityOpenEnterAnimation这个Animation就是刚要进来的Activity的Animation,activityOpenEXiteAnimation就是给退出的Activity使用的Animation,而activityCloseEnterAnimation是给即将显示在屏幕上的Activity用的Animation,activityCloseExitAnimation就是给即将退出屏幕的Activity所显示的。
接着再把这个四个属性写进一个style文件中,而它是继承自@android:style/Animation.Activity的,所以parent需要写上@android:style/Animation.Activity,接着给android:windowAnimationStyle赋值为该style,接着在Theme中赋值。
 <style name="anim">
        <item name="android:windowAnimationStyle">@style/animation</item>
    </style>


    <style name="animation" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/in</item>
        <item name="android:activityOpenExitAnimation">@anim/out</item>
        <item name="android:activityCloseEnterAnimation">@anim/acin</item>
        <item name="android:activityCloseExitAnimation">@anim/acout</item>
    </style>
anim style文件,就是最终要给Theme赋值的文件。这样就能显示了,而如果要给所有的Activity都添加上Animation的显示效果,就在Application的标签中添加上这个Theme行了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值