,通過progressBar來展示當前的sdcard容量。
代碼:
activity代碼:
package cn.com.chenzheng_java;</p><p>import java.io.File;</p><p>import android.app.Activity;<br />import android.os.Bundle;<br />import android.os.Environment;<br />import android.os.StatFs;<br />import android.util.Log;<br />import android.view.View;<br />import android.view.View.OnClickListener;<br />import android.widget.Button;<br />import android.widget.ProgressBar;<br />import android.widget.Toast;</p><p>public class SDCardActivity extends Activity implements OnClickListener {</p><p>String result = "SDCard容量相關資訊:/n";<br />ProgressBar progressBar ;<br />Button button;</p><p>@Override<br />protected void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.sdcard);<br />progressBar = (ProgressBar) findViewById(R.id.progressBar_sdcard);<br />button = (Button) findViewById(R.id.button_sdcard);<br />button.setOnClickListener(this);</p><p>}</p><p>private void showSDCardSize(){<br />progressBar.setProgress(0);</p><p>File sdcard = Environment.getExternalStorageDirectory();<br />/**<br /> * 我們可以通過StatFs訪問檔案系統的空間容量等資訊<br /> */<br />StatFs statFs = new StatFs(sdcard.getPath());</p><p>/**<br /> * statFs.getBlockSize可以擷取當前的檔案系統中,一個block所佔有的位元組數<br /> */<br />int blockSize = statFs.getBlockSize();<br />/**<br /> * statFs.getAvaliableBlocks方法可以返回尚未使用的block的數量<br /> */<br />int avaliableBlocks = statFs.getAvailableBlocks();<br />/**<br /> * statFs.getBlockCount可以擷取總的block數量<br /> */<br />int totalBlocks = statFs.getBlockCount();</p><p>result+="/n 尚未被使用的空間大小:"+avaliableBlocks*blockSize+"byte";</p><p>result+="/n 總空間大小:"+totalBlocks*blockSize+"byte";<br />float a = (float)avaliableBlocks/totalBlocks;<br />int b = Integer.valueOf(Float.valueOf(a*100).toString().substring(0,2));</p><p>progressBar.setProgress(90);<br />Log.i("通知", result);<br />Toast.makeText(this, b+" "+result, Toast.LENGTH_LONG).show();</p><p>}</p><p>@Override<br />public void onClick(View v) {<br />showSDCardSize();</p><p>}</p><p>}<br />
sdcard.xml
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:layout_width="fill_parent" android:layout_height="fill_parent"<br />android:orientation="vertical"><br /><!--<br />progressBar設定為水平的長框而不是一直旋轉的小圓圈,應該通過如下語句設定<br />style="?android:attr/progressBarStyleHorizontal"<br />或者<br />style="?android:progressBarStyleHorizontal"<br /> --><br /><ProgressBar android:id="@+id/progressBar_sdcard"<br />android:progress="0" style="?android:progressBarStyleHorizontal" mce_style="?android:progressBarStyleHorizontal"<br />android:max="100"<br />android:layout_width="fill_parent" android:layout_height="wrap_content"></ProgressBar><br /><Button android:id="@+id/button_sdcard" android:layout_width="wrap_content"<br />android:text="Button" android:layout_height="wrap_content"></Button><br /></LinearLayout><br />
其他的檔案都為預設。
--------------------------------------------------------------------------------------------
這裡,只要使用到了一個類android.os.StatFs,該類可以讓我們訪問檔案系統的容量相關的資訊。
主要方法有: