android之查看SDCard容量

如图所示,通过progressBar来展示当前的sdcard容量。

代码:

activity代码:

[java:nogutter] view plain copy print ?
  1. package cn.com.chenzheng_java;
  2. import java.io.File;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.os.Environment;
  6. import android.os.StatFs;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. import android.widget.ProgressBar;
  12. import android.widget.Toast;
  13. public class SDCardActivity extends Activity implements OnClickListener {
  14. String result = "SDCard容量相关信息:/n";
  15. ProgressBar progressBar ;
  16. Button button;
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.sdcard);
  21. progressBar = (ProgressBar) findViewById(R.id.progressBar_sdcard);
  22. button = (Button) findViewById(R.id.button_sdcard);
  23. button.setOnClickListener(this);
  24. }
  25. private void showSDCardSize(){
  26. progressBar.setProgress(0);
  27. File sdcard = Environment.getExternalStorageDirectory();
  28. /**
  29. * 我们可以通过StatFs访问文件系统的空间容量等信息
  30. */
  31. StatFs statFs = new StatFs(sdcard.getPath());
  32. /**
  33. * statFs.getBlockSize可以获取当前的文件系统中,一个block所占有的字节数
  34. */
  35. int blockSize = statFs.getBlockSize();
  36. /**
  37. * statFs.getAvaliableBlocks方法可以返回尚未使用的block的数量
  38. */
  39. int avaliableBlocks = statFs.getAvailableBlocks();
  40. /**
  41. * statFs.getBlockCount可以获取总的block数量
  42. */
  43. int totalBlocks = statFs.getBlockCount();
  44. result+="/n 尚未被使用的空间大小:"+avaliableBlocks*blockSize+"byte";
  45. result+="/n 总空间大小:"+totalBlocks*blockSize+"byte";
  46. float a = (float)avaliableBlocks/totalBlocks;
  47. int b = Integer.valueOf(Float.valueOf(a*100).toString().substring(0,2));
  48. progressBar.setProgress(90);
  49. Log.i("通知", result);
  50. Toast.makeText(this, b+" "+result, Toast.LENGTH_LONG).show();
  51. }
  52. @Override
  53. public void onClick(View v) {
  54. showSDCardSize();
  55. }
  56. }

sdcard.xml

[xhtml:nogutter] view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent" android:layout_height="fill_parent"
  4. android:orientation="vertical">
  5. <!--
  6. progressBar设置为水平的长框而不是一直旋转的小圆圈,应该通过如下语句设置
  7. style="?android:attr/progressBarStyleHorizontal"
  8. 或者
  9. style="?android:progressBarStyleHorizontal"
  10. -->
  11. <ProgressBar android:id="@+id/progressBar_sdcard"
  12. android:progress="0" style="?android:progressBarStyleHorizontal" mce_style="?android:progressBarStyleHorizontal"
  13. android:max="100"
  14. android:layout_width="fill_parent" android:layout_height="wrap_content"></ProgressBar>
  15. <Button android:id="@+id/button_sdcard" android:layout_width="wrap_content"
  16. android:text="Button" android:layout_height="wrap_content"></Button>
  17. </LinearLayout>

其他的文件都为默认。

--------------------------------------------------------------------------------------------

这里,只要使用到了一个类android.os.StatFs,该类可以让我们访问文件系统的容量相关的信息。

主要方法有:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值