ПЕРЕВОД ИЗОБРАЖЕНИЯ ANDROID - PullRequest
0 голосов
/ 13 апреля 2011

Я хочу знать о деятельности по переводу изображений.

Макет должен содержать два изображения, и эти два изображения должны разделить влево и вправо одновременно, когда мы нажимаем кнопку одно изображение должно переводиться влево, а другое - вправо.

Помощь приветствуется.

1 Ответ

0 голосов
/ 13 апреля 2011

Либо отправьте код, либо ознакомьтесь с документацией о том, что вы спрашиваете, и получите немного больше описания. Это не торговый автомат для кода, люди обычно не хотят просто кодировать вещи для людей, потому что они просят об этом. С какими именно проблемами у вас будет хорошее начало? Пожалуйста, прочитайте документы, попробуйте еще раз, и если вы не можете получить его, вернитесь с деталями; вы найдете помощь быстрее.

[редактировать] ---- учебник ниже -----

Поскольку вы на самом деле дали некоторый уровень детализации здесь, я полагаю, я покажу вам простой метод. Во-первых, this - отличное место для анимации. Используй это. Во-вторых, этот код прекрасно работал для меня на Droid2.

public class animationTEST extends Activity implements AnimationListener {
    LinearLayout layout;
    LinearLayout layout2;
    Animation movement;
    Animation movement2;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Get the layouts
        layout = (LinearLayout) findViewById(R.id.linearLayout1);
        layout2 = (LinearLayout) findViewById(R.id.linearLayout2);

        // Create animation for right image
        movement = AnimationUtils.loadAnimation(this, R.layout.animation_test);
        movement.reset();
        movement.setAnimationListener(this);

        // Create animation for left image
        movement2 = AnimationUtils.loadAnimation(this, R.layout.animation_test2);
        movement2.reset();
        movement2.setAnimationListener(this);        


        // Start animation on each image
        layout2.startAnimation(movement2);
        layout.startAnimation(movement);}

    // Listen for animations to be finished
    // There are more efficient ways, I'm just being lazy.
    public void onAnimationEnd(Animation animation) {
        layout.setVisibility(View.INVISIBLE);
        layout2.setVisibility(View.INVISIBLE);
        // or do whatever it is you wanted to do here, like launch another activity?
    } 

    public void onAnimationRepeat(Animation animation) {    
    } 

    public void onAnimationStart(Animation animation) { 
    } 

}

Файл main.xml:

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

    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="Animation Test Activity" />
    <RelativeLayout android:layout_width="match_parent"
        android:layout_height="match_parent" android:id="@+id/relativeLayout1">


        <LinearLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_centerVertical="true"
            android:layout_marginLeft="105dip" android:id="@+id/linearLayout2">

            <ImageView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:src="@drawable/icon"
                android:layout_marginRight="30dip" android:id="@+id/imageView2"></ImageView>

        </LinearLayout>

        <LinearLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_centerVertical="true"
            android:id="@+id/linearLayout1" android:layout_marginLeft="145dip">

            <ImageView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:src="@drawable/icon"
                android:layout_marginRight="30dip" android:id="@+id/imageView1"></ImageView>

        </LinearLayout>


    </RelativeLayout>


</LinearLayout>

animation_test.xml (определение анимации перевода)

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:fromXDelta="0" 
     android:toXDelta="65%p" 
     android:fromYDelta="0"
     android:toYDelta="0%" 
     android:duration="3000" 
     android:zAdjustment="top"/>

animation_test2.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:fromXDelta="0" 
     android:toXDelta="-65%p" 
     android:fromYDelta="0"
     android:toYDelta="0%" 
     android:duration="3000" 
     android:zAdjustment="top"/>

Если вы не можете этого понять, вернитесь и прочитайте оба документа, которые я вам дал. Здесь достаточно информации, чтобы понять любую анимацию. Однако вы хотите использовать animationDrawable объекты не правильно, потому что это анимация кадра, а не преобразование или движение. Кадровая анимация просто делает что-то похожим на то, что она танцует или машет. Когда вы пытаетесь просто переместить, затемнить или масштабировать изображение, вам нужна анимация преобразования. Надеюсь это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...