بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ساخت یک Random Background

مدیریت گفتگو
علی 11 سال پیش
آخرین تغییر: 11 سال پیش

با سلام  : 

من می خواهم در یک Activity  چند تا عکس بزارم به صورت بک گراند که هر چند ثانیه عوض بشود...ولی نمی دانم چطور این کار را انجام بدم...لطفا راهنمایی بفرمایید.

نظرات

mf2010 11 سال پیش
از انیمشن باید استفاده کنی اگه خاستی بگو برات توضیح بدم
علی 11 سال پیش
ممنون میشم اگر کامل توضیح بدید .خیلی واجبه برام ...
mf2010 11 سال پیش
چشم الان براتون پست میکنم ولی یه دفعه برای یکی از کاربرا گذاشتم نمیدونم این سایت بود یا نه ولی باشه بازم میذارم یه چند دقیقه منتظر باشید

پاسخ‌ها 7

mf2010 11 سال پیش

اول تو اکتیوتی دلخواه یک imageView ایجاد میکنید مثل کد زیر 

  <ImageView
            android:id="@+id/imageView1"
            android:layout_width="fill_parent"
            android:layout_height="200dp"
            android:adjustViewBounds="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:scaleType="fitXY"
          />

خوب در پوشه drawble یه فایل به animation.xml میسازید  مشخصه اول کد زیر نام عکس و دومی زمان نمایشش 

 <?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
	android:oneshot="false">

	<item android:drawable="@drawable/background2" android:duration="3000" />
	<item android:drawable="@drawable/background3" android:duration="3000" />
	<item android:drawable="@drawable/background4" android:duration="3000" />
	<item android:drawable="@drawable/background5" android:duration="3000" />
	

</animation-list>

خوب میریم سراغ سورس کد  اول اون imageView رو معرفی میکنیم بعد انیمشن رو بهش نسبت میدیم 

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

        animation.setBackgroundResource(R.drawable.animation);

این کد هم برای اینکه انیمشن اجرا شه انتهای صفحت میذاری 

  @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        super.onWindowFocusChanged(hasFocus);
        AnimationDrawable frameAnimation =
                (AnimationDrawable) animation.getBackground();

        if (hasFocus) {

          

              
                frameAnimation.start();

            }
        } else {
          

              
                frameAnimation.stop();

            }
        }

    }

تموم شد 

 

نظرات

علی 11 سال پیش
ممنون دوست عزیز خیلی کامل و خوبه . فقط در قسمت ( در پوشه drawble یه فایل به animation.xml میسازید ) من نمی دونم با Android Studio چطور باید بسازم...
mf2010 11 سال پیش
من اندروید استدیو ندارم ولی فکر کنم روی پوشه کلیک راست کنید برید تو نیو و اکس ام ال رو انتخاب کنید و اسمش رو بذارید هم که گفتم
mf2010 11 سال پیش

نظرات

mf2010 11 سال پیش
اون هدر که عوض شده همون imageView هست که انیمشن بهش نسبت دادیم
علی 11 سال پیش
تمام کار ها را انجام دادم فقط در اینجا ارور داره : package test.yavari.fa2.test; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.AnimationDrawable; import android.media.MediaPlayer; import android.os.Bundle; import android.os.CountDownTimer; import android.widget.ImageView; public class ThirdActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third_page); ImageView animati findViewById(R.id.imageView1); animation.setBackgroundResource(R.drawable.animation); @Override public void onWindowFocusChanged(boolean hasFocus) { لینک TODO Auto-generated method stub super.onWindowFocusChanged(hasFocus); AnimationDrawable frameAnimati animation.getBackground(); if (hasFocus) { frameAnimation.start(); } } else { frameAnimation.stop(); } } } } }
علی 11 سال پیش
اشتباه شد
علی 11 سال پیش

 package test.yavari.fa2.test;

import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.ImageView;

public class ThirdActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third_page);


        ImageView  animation = (ImageView) findViewById(R.id.imageView1);
        animation.setBackgroundResource(R.drawable.animation);


        @Override
        public void onWindowFocusChanged(boolean hasFocus) {
            // TODO Auto-generated method stub
            super.onWindowFocusChanged(hasFocus);
            AnimationDrawable frameAnimation =
                    (AnimationDrawable) animation.getBackground();

            if (hasFocus) {




                frameAnimation.start();

            }
        } else {



            frameAnimation.stop();

        }
    }

}

    }

}

نظرات

mf2010 11 سال پیش
onWindowFocusChanged رو بیار خارج از setContentView
mf2010 11 سال پیش

نظرات

علی 11 سال پیش

نظرات

علی 11 سال پیش
کلا گیر داده به frameAnimation ! اعصابم خورد شد یل اینکه من خیلی خنگم. شرمنده اذیتتونم کردم
mf2010 11 سال پیش
فکر کنم یه پرانتز کم گذاشتی اخر کدت کم داره
علی 11 سال پیش
نه اونو هم گذاشتم بازم نشد. به frameAnimation یه چیزی میگه
mf2010 11 سال پیش
شاید هم پرانتز قبل از else یکیش اضافیه
mf2010 11 سال پیش
ّframeAnimation مشکل نداره مشکل از پرانتز هاس چون اگه اون داشت کد بالاترش frameAnimation . star هم ارور میداد
علی 11 سال پیش

نظرات

علی 11 سال پیش
تمام ارورا رفت به غیر animation
mf2010 11 سال پیش

نظرات

علی 11 سال پیش
انجام دادم دوست عزیز بازهم نشد... :(
علی 11 سال پیش
این درست شد ولی وقتی اجرا می کنم force close میده
mf2010 11 سال پیش
اگه از اکلیپس استفاده میکردی بهتر بود ولی شما خاستی پروژت رو بفرست برای من ببینم مشکلش چیه من فعلا برم لالا :)
علی 11 سال پیش
مرسی درست شد دوست عزیز . فقط نمیشه به عکس ها افکت داد که زیباتر عوض بشه؟ اگه اپ سیروان رو نصب کنید بهتر منظورم رو متوجه میشید. وقتی عکس ها عوض می شوند تو در تو هست انگاری یه افکت قشنگی داره
علی 11 سال پیش
منظورم اینه چطور می تونم cross fading رو بهش اضافه کنم؟
mf2010 11 سال پیش
شما پروژه اسلایدر استاد رو نگاه کنید مشکلتون حل میشه

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .