Nano Hash - криптовалюты, майнинг, программирование

Индикатор выполнения (круг) не вращается в Android

Я использую индикатор выполнения (круг), пока мои данные загружаются из базы данных на заставке. Я использовал индикатор выполнения в xml, используя его теги... но в действии он не вращается... Предложите помощь.. что с ним не так?

xml:



          <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <ImageView
                android:id="@+id/imgLogo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:background="@drawable/splash" />

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/loading"
                android:layout_centerHorizontal="true"
                android:gravity="center_horizontal"
                android:text="Loading data..."
                android:visibility="visible"
                android:textAppearance="?android:attr/textAppearanceLarge" />

           <ProgressBar
            android:id="@+id/loading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="92dp"
            android:gravity="center"
            android:indeterminateDrawable="@drawable/custom_bar" />
    </RelativeLayout>

    Java: 

    public class SplashScreen extends Activity {
        static String DATABASE_NAME = "ItemDB";
        static DBACESS mDbAccess = null;
        public static SQLiteDatabase mDB;
        public static ListItems objitem;
        private static int SPLASH_TIME_OUT = 100;
        private PackageManager packageManager = null;
        static DataEntryClass data = new DataEntryClass();
        static List<ItemClass> item_table;
        ProgressBar progressBar;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_splash);
            progressBar = (ProgressBar) findViewById(R.id.loading);
            // ////////////////////////
            /////////////////////////
            CheckConnectionState(getApplicationContext());
            packageManager = getPackageManager();

            if (objitem == null)
                objitem = new ListItems(getApplicationContext(), mDB);

            if (!objitem.ItemsExist(mDB))
                try {
                    data.addItems(getApplicationContext());
                } catch (Exception e) {
                    // TODO: handle exception
                }

            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {

                    data.getNewUpdates(getApplicationContext(), packageManager);
                    item_table = new ArrayList<ItemClass>();
                    item_table = objitem.LoadItems(mDB);

                    Intent i = new Intent(SplashScreen.this, TabActivity.class);
                    startActivity(i);

                    // close this activity
                    finish();
                }
            }, SPLASH_TIME_OUT);
        }



        public static void CheckConnectionState(Context ct) {
            try {

                if (mDB == null || !mDB.isOpen()) {
                    DBACESS.DATABASE_NAME = DATABASE_NAME;
                    mDbAccess = new DBACESS(ct);
                    mDB = mDbAccess.getReadableDatabase();
                }
            } catch (Exception e) {

            }
        }
    }

custom_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
android:repeatCount="infinite"
android:drawable="@drawable/menu" >
</rotate> 

  • разместите соответствующий код. 28.02.2015
  • Вы должны установить вращающуюся анимацию для этого индикатора выполнения программно внутри активности. 28.02.2015
  • Как вы загружаете свои данные из базы данных? Если вы выполняете эту работу в своем потоке пользовательского интерфейса, возможно, ваш пользовательский интерфейс зависает до загрузки данных. Если это так, вам следует использовать какой-либо механизм загрузки фоновых данных, такой как AsyncTasks, для загрузки ваших данных в фоновом потоке. 28.02.2015
  • @dishan, ты прав ... Я решил это так. 28.02.2015

Ответы:


1

для вращения изображения вы можете использовать custom_progress_bar.xml внутри папки с возможностью рисования

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
android:drawable="@drawable/gif_loader_img1" >
</rotate> 

настроить возможность рисования на индикаторе прогресса

   <ProgressBar
    android:id="@+id/progressBar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" 
    android:indeterminate="true"
    android:indeterminateDrawable="@drawable/custom_progress_bar"/>
28.02.2015
  • вам нужно создать custom_progress_bar.xml внутри папки с возможностью рисования, после чего вам нужно установить этот custom_progress_bar.xml в progressba, как в моем примере.. 28.02.2015
  • Я делаю это. но такая же проблема. 28.02.2015
  • Отлично работает на стиле ?android:attr/progressBarStyleLarge. мне не нужно android:indeterminate="true" 11.08.2015
  • Также работает с style="@android:style/Widget.ProgressBar.Inverse, но лучше создать свой стиль или использовать progress_medium_holo.xml из ресурсов Android. 13.10.2016
  • Что такое @drawable/gif_loader_img1 24.12.2017

  • 2

    Этот вопрос старый, однако есть еще одно соображение. Было довольно легко и довольно сложно найти ошибку для устройств разработчика.

    Просто убедитесь, что ваши анимации активны в настройках разработчика. Активируйте эти опции:

    Window animation scale: Animation scale 1x
    Transition animation scale: Animation scale 1x
    Animator duration scale: Animation scale 1x
    

    Параметры разработчика

    11.01.2019

    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..