android之查看SDCard容量

來源:互聯網
上載者:User

,通過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,該類可以讓我們訪問檔案系統的容量相關的資訊。

主要方法有:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.