i Хочу, чтобы хранилище Iternal получало память и использовало память в прогрессбар, как на картинке ниже в моем приложении. Как подать заявку, пожалуйста, помогите мне custome progressbar, используемому в android.and я использовал приложение для загрузки. Как проверить количество встроенных памяти в android?
ответ
Вот как это может быть достигнуто:
TestActivity.java:
public class TestActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView occupiedSpaceText = (TextView)findViewById(R.id.occupiedSpace);
final TextView freeSpaceText = (TextView)findViewById(R.id.freeSpace);
final ProgressBar progressIndicator = (ProgressBar)findViewById(R.id.indicator);
final float totalSpace = DeviceMemory.getInternalStorageSpace();
final float occupiedSpace = DeviceMemory.getInternalUsedSpace();
final float freeSpace = DeviceMemory.getInternalFreeSpace();
final DecimalFormat outputFormat = new DecimalFormat("#.##");
if (null != occupiedSpaceText) {
occupiedSpaceText.setText(outputFormat.format(occupiedSpace) + " MB");
}
if (null != freeSpaceText) {
freeSpaceText.setText(outputFormat.format(freeSpace) + " MB");
}
if (null != progressIndicator) {
progressIndicator.setMax((int) totalSpace);
progressIndicator.setProgress((int)occupiedSpace);
}
}
/**
* From question http://stackoverflow.com/questions/2652935/android-internal-phone-storage by Lazy Ninja
*/
public static class DeviceMemory {
public static float getInternalStorageSpace() {
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
//StatFs statFs = new StatFs("/data");
float total = ((float)statFs.getBlockCount() * statFs.getBlockSize())/1048576;
return total;
}
public static float getInternalFreeSpace() {
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
//StatFs statFs = new StatFs("/data");
float free = ((float)statFs.getAvailableBlocks() * statFs.getBlockSize())/1048576;
return free;
}
public static float getInternalUsedSpace() {
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
//StatFs statFs = new StatFs("/data");
float total = ((float)statFs.getBlockCount() * statFs.getBlockSize())/1048576;
float free = ((float)statFs.getAvailableBlocks() * statFs.getBlockSize())/1048576;
float busy = total - free;
return busy;
}
}
}
макет/main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
style="@android:style/Widget.ProgressBar.Horizontal"
android:progressDrawable="@drawable/memory_indicator_progress" />
<TextView
android:id="@+id/occupiedSpace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:gravity="left"
android:layout_marginLeft="5dp"
android:textColor="@android:color/black"
android:textStyle="bold" />
<TextView
android:id="@+id/freeSpace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:gravity="right"
android:layout_marginRight="5dp"
android:textColor="@android:color/black"
android:textStyle="bold" />
</RelativeLayout>
рисуем/memory_indicator_progress.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_green_light" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape android:shape="rectangle">
<solid android:color="@android:color/darker_gray" />
</shape>
</clip>
</item>
</layer-list>
Я не уверен, если это именно то, что вы ищете, но на моем XPERIA V с 4.1 андроида я получаю следующую картину:
на вашем цвета устройства могут отличаться от разных платформ.
Спасибо Sandrstar за ответ, я проверю его. – crickpatel0024
Используйте android.os.Environment, чтобы найти внутренний каталог, а затем используйте android.os.StatFs, чтобы вызвать системный вызов Unix statfs на нем. Бесстыдно stolen из приложения Android настройки:
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(this, availableBlocks * blockSize);
От this answer
Спасибо за ответ !!, но как установить текст в строке прогресса в android.used цвет памяти и доступный цвет памяти в рабочем состоянии, как можно, пожалуйста, помогите мне !!! – crickpatel0024
- 1. Как проверить количество бесплатных INodes в Android
- 2. памяти для Neo4j встроенных
- 3. проверить скорость встроенных и не встроенных функций
- 4. Как проверить количество объектов, созданных в куче памяти?
- 5. Как быстро проверить большое количество файлов в ящике памяти
- 6. Использование памяти во встроенных системах
- 7. Распределение памяти в битах памяти Android
- 8. Служба Android занимает огромное количество памяти
- 9. Как проверить количество времени?
- 10. Как проверить пределы памяти
- 11. Как проверить количество файлов
- 12. Как проверить количество света?
- 13. Как проверить использование памяти
- 14. Как проверить освобождение памяти
- 15. Как автовоспроизведение встроенных видеороликов в Android?
- 16. Как определить количество флажков, которые можно проверить в Android?
- 17. Как проверить правильный файл в памяти телефона Android?
- 18. Как проверить, сколько кода для хранения памяти в android
- 19. Как проверить файл XML со схемой в памяти с .NET?
- 20. Как подсчитать количество распределений памяти
- 21. MongoDB: Данные весны: - Количество встроенных массивов
- 22. C++ как проверить доступ к памяти кучи
- 23. Как определить количество прямой памяти Java 8?
- 24. Недостаточно памяти Комбинация лямбда против встроенных делегатов
- 25. Неизвестное количество встроенных источников с automake
- 26. Изменить количество встроенных строк администрирования по умолчанию?
- 27. Как узнать количество свободной памяти в iOS?
- 28. Как проверить количество проверок JCheckboxes?
- 29. Как проверить количество заполненных полей?
- 30. Как проверить количество параметров запроса?
Вы пробовали обычный индикатор выполнения и два текстовых вида, выровненных по разные стороны? – sandrstar
да, я хочу, чтобы 2 textview внутри progressbar. – crickpatel0024