Дельта-синхронизация крипто-дисков

Существуют разные способы зашифровать "облако". Один из них - поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно.

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Класс TransitionDrawable


© Денис Колисниченко

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

Для нашего приложения файл res/layout/main.xml уже готов, осталось создать только файл transition.xml в каталогах res/drawable*. В данном файле определяется
эффект перехода между изображениями. Код файла transition.xml приведен в листинге 1. В файле transition.xml описываются изображения, которые будут меняться во время перехода.

Листинг 1. Файл transition.xml

<?xml version="1.0" encoding="utf-8"?>

<transition xmlns:android="https://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/p1"></item>

<item android:drawable="@drawable/p2"></item>

</transition>

Организация самого перехода возлагается на Java-код. Полный код приложения приведен в листинге 2. Чтобы код приложения был более понятным, объясню, как должно работать будущее приложение. При загрузке приложения в ImageView1 загружается изображение, указанное в файле разметки. При щелчке на ImageView1 загружается следующее изображение, указанное в transition.xml. Длительность плавного перехода между картинками задается методом startTransition() в миллисекундах, 1000 мс = 1 с.

Листинг 2. Переход между изображениями

package com.samples.hel31;

import android.app.Activity;

import android.os.Bundle;

import android.content.res.Resources;

import android.graphics.drawable.TransitionDrawable;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ImageView;

public class A31Activity extends Activity implements OnClickListener {

    /** Called when the activity is first created. */

       

        private ImageView image;

        private TransitionDrawable trans;

       

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        // находим ImageView1 в разметке

        image = (ImageView)findViewById(R.id.imageView1);

        // устанавливаем обработчик щелчка

        image.setOnClickListener(this);

        Resources res = this.getResources();

        // создаем объект класса TransisionDrawable — он и отвечает

        // за переход между изображениями

        trans = (TransitionDrawable)res.getDrawable(R.drawable.transition);

    }

    // реакция на щелчок на ImageView1

    public void onClick(View v) {

        image.setImageDrawable(trans);

        trans.startTransition(1000);

    }

}

Запустите приложение и щелкните на изображении. К сожалению, сделать снимок экрана нельзя — все равно ничего не будет понятно (специально для dkws.org.ua).

Вы можете использовать следующие методы класса TransitionDrawable:

r    setCrossFadeEnabled(boolean enabled) - включает эффект CrossFade, который заключается в плавном затухании при переходе между первым и вторым изображениями.

r    boolean isCrossFadeEnabled() - возвращает true, если эффект CrossFade включен.

r    resetTransition() - сбрасывает переход, показывается только первый слой.

r    reverseTransition (int duration) - переход в обратном порядке.

r    startTransition(int duration) - запускает процесс перехода.