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

代码:

activity代码:

package cn.com.chenzheng_java; import java.io.File; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.os.StatFs; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; import android.widget.Toast; public class SDCardActivity extends Activity implements OnClickListener { String result = "SDCard容量相关信息:/n"; ProgressBar progressBar ; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sdcard); progressBar = (ProgressBar) findViewById(R.id.progressBar_sdcard); button = (Button) findViewById(R.id.button_sdcard); button.setOnClickListener(this); } private void showSDCardSize(){ progressBar.setProgress(0); File sdcard = Environment.getExternalStorageDirectory(); /** * 我们可以通过StatFs访问文件系统的空间容量等信息 */ StatFs statFs = new StatFs(sdcard.getPath()); /** * statFs.getBlockSize可以获取当前的文件系统中,一个block所占有的字节数 */ int blockSize = statFs.getBlockSize(); /** * statFs.getAvaliableBlocks方法可以返回尚未使用的block的数量 */ int avaliableBlocks = statFs.getAvailableBlocks(); /** * statFs.getBlockCount可以获取总的block数量 */ int totalBlocks = statFs.getBlockCount(); result+="/n 尚未被使用的空间大小:"+avaliableBlocks*blockSize+"byte"; result+="/n 总空间大小:"+totalBlocks*blockSize+"byte"; float a = (float)avaliableBlocks/totalBlocks; int b = Integer.valueOf(Float.valueOf(a*100).toString().substring(0,2)); progressBar.setProgress(90); Log.i("通知", result); Toast.makeText(this, b+" "+result, Toast.LENGTH_LONG).show(); } @Override public void onClick(View v) { showSDCardSize(); } }

sdcard.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <!-- progressBar设置为水平的长框而不是一直旋转的小圆圈,应该通过如下语句设置 style="?android:attr/progressBarStyleHorizontal" 或者 style="?android:progressBarStyleHorizontal" --> <ProgressBar android:id="@+id/progressBar_sdcard" android:progress="0" style="?android:progressBarStyleHorizontal" mce_style="?android:progressBarStyleHorizontal" android:max="100" android:layout_width="fill_parent" android:layout_height="wrap_content"></ProgressBar> <Button android:id="@+id/button_sdcard" android:layout_width="wrap_content" android:text="Button" android:layout_height="wrap_content"></Button> </LinearLayout>

其他的文件都为默认。

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

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

主要方法有:

android之查看SDCard容量_第1张图片

更多相关文章

  1. 更改系统给APP应用分配最大的内存空间
  2. android之获取手机安装包里面的信息、获取目录空间的大小
  3. Android 比较全面的自定义刷新空间
  4. 文件系统中的保留空间
  5. QQ空间手机版的十件不为人知的事
  6. android文件系统及其制作

随机推荐

  1. Android(安卓)JSON解析示例代码
  2. 手动滑动TextView超出的内容
  3. Android(安卓)3D 游戏学习笔记(4)-光源
  4. Android:退出程序后保持Serivce开启不关
  5. 从HandlerThread 的使用来分析HandlerThr
  6. Android(安卓)JNI中记录log
  7. windows 下 android 使用ant自动打包
  8. Android(安卓)Studio无法单点调试Connect
  9. 在Ubuntu(Linux)上安装Android(安卓)Studio
  10. .NET跨平台开发之Xamarin.Android介绍与