استفاده از Image Switcher - در برنامه نویسی اندروید

گاهی اوقات شما نمی خواهید یک تصویر به طور ناگهانی روی صفحه, نمایش داده شود، بلکه می خواهید زمانی که تصویر از یک تصویر به تصویر دیگر منتقل می شود، نوعی انیمیشن روی صفحه اعمال کنید. این قابلیت توسط اندروید در قالب Image Switcher پشتیبانی می شود. Image Switcher به شما امکان می دهد برخی از انتقال ها را از طریق نحوه نمایش آنها روی صفحه نمایش روی تصاویر اضافه کنید. برای استفاده از ImageSwitcher، ابتدا باید ویو XML آن را تعریف کنید. به کد های زیر دقت کنید:

<ImageSwitcher
   android:id="@+id/imageSwitcher1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerHorizontal="true"
   android:layout_centerVertical="true" >
</ImageSwitcher>

اکنون یک نمونه از ImageSwithcer در فایل جاوا تعریف می کنیم و آن را از فایل XML دریافت می کنیم. به کدهای زیر دقت کنید :

private ImageSwitcher imageSwitcher;
imageSwitcher = (ImageSwitcher)findViewById(R.id.imageSwitcher1);

کار بعدی که باید انجام دهیم رابط ViewFactory را پیاده سازی کنیم و متد اجرا نشده ای را پیاده سازی کنیم که یک imageView را برمی گرداند. نحو پیاده سازی به این شکل است :

imageSwitcher.setImageResource(R.drawable.ic_launcher);
imageSwitcher.setFactory(new ViewFactory() {
   public View makeView() {
      ImageView myView = new ImageView(getApplicationContext());
      return myView;
   }
}

آخرین کاری که باید انجام دهید این است که انیمیشن را به ImageSwitcher اضافه کنید. شما باید یک شی از کلاس Animation را از طریق کلاس AnimationUtilities با فراخوانی یک متد استاتیک loadAnimation تعریف کنید. به کد های زیر دقت کنید :

Animation in = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left);
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);

متد setInAnimation انیمیشن ظاهر شی را روی صفحه تنظیم می کند در حالی که setOutAnimation برعکس عمل می کند. متد loadAnimation() یک شی انیمیشن ایجاد می کند.

دیگر متد های Image Switcher

به غیر از این متدها، متدهای دیگری نیز در کلاس ImageSwitcher در اندروید تعریف شده اند. در ادامه به این متد ها پرداخته ایم :

متد و توضیحات ردیف
setImageDrawable(Drawable drawable)

این متد یک تصویر را با تغییر دهنده تصویر تنظیم می کند. تصویر به صورت Bitmap ارسال می شود.

1
setImageResource(int resid)

این متد یک تصویر را با تغییر دهنده تصویر تنظیم می کند. تصویر به شکل شناسه عدد صحیح یا همان id آن که مربوط به منابع می باشد, ارسال می شود.

2
setImageURI(Uri uri)

این متد یک تصویر را با تغییر دهنده تصویر تنظیم می کند. لینک تصویر در این متد ارسال می شود.

3
ImageSwitcher(Context context, AttributeSet attrs)

این متد یک شی تغییردهنده تصویر را که قبلاً برخی از ویژگی‌های ارسال شده در متد را تنظیم کرده است، برمی‌گرداند.

4
onInitializeAccessibilityEvent (AccessibilityEvent event)

این متد یک AccessibilityEvent را با اطلاعات مربوط به این View که منبع رویداد است، راه اندازی می کند.

5
onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info)

این متد یک AccessibilityNodeInfo را با اطلاعات مربوط به این نما راه‌اندازی می‌کند.

6

مثال

مثال زیر برخی از افکت های تغییر دهنده تصویر را بر روی bitmap نشان می دهد. این آموزش یک برنامه اساسی است که به شما امکان می دهد جلوه های انیمیشن را روی تصاویر مشاهده کنید. برای آزمایش با این مثال، باید آن را روی یک دستگاه واقعی اجرا کنید.

توضیحات مرحله
ابتدا یک پروژه جدید در اندروید استودیو با یک پکیج دلخواه ایجاد کنید. 1
کدهای درون فایل MainActivity.class را مطابق کدهای که در پایین آورده ایم تغییر بدهید. 2
کدهای درون فایل activity_main.xml را مطابق کدهای که در پایین آورده ایم تغییر بدهید. 3
برنامه را بر روی یک تلفن واقعی یا شبیه ساز اجرا کنید و تست را انجام بدهید. 4

کدهای فایل MainActivity.class

package com.foray.articlelib;

import android.app.ActionBar.LayoutParams;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private ImageSwitcher sw;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button b1 = findViewById(R.id.button);
        Button b2 = findViewById(R.id.button2);

        sw = findViewById(R.id.imageSwitcher);
        sw.setFactory(() -> {
            ImageView myView = new ImageView(getApplicationContext());
            myView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            myView.setLayoutParams(new
                    ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
            return myView;
        });

        b1.setOnClickListener(v -> {
            Toast.makeText(getApplicationContext(), "تصویر قبل",
                    Toast.LENGTH_LONG).show();
            sw.setImageResource(R.drawable.abc);
        });

        b2.setOnClickListener(v -> {
            Toast.makeText(getApplicationContext(), "تصویر بعد",
                    Toast.LENGTH_LONG).show();
            sw.setImageResource(R.drawable.tp);
        });
    }
}

کدهای فایل activity_main.xml

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

    <TextView
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="مثال ImageSlider"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textview"
        android:layout_centerHorizontal="true"
        android:text="7Cloner.com"
        android:textColor="#000000"
        android:textSize="25dp" />

    <ImageSwitcher
        android:id="@+id/imageSwitcher"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="168dp" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:text="قبلی" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/button"
        android:layout_alignLeft="@+id/button"
        android:layout_alignParentBottom="true"
        android:text="بعدی" />

</RelativeLayout>

نتیجه

Image Switcher Image Switcher

همان طور که در تصاویر بالا می بینید می توانید لیستی از تصاویر خود را به اشکال مختلف در یک ImageSwitcher به نمایش در بیاورید. این لیست را میتوانید با انیمیشن های مختلف برای کاربران خود به نمایش در بیاورید.

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

مقالات پیشنهادی

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۷۷۱
۰
۲ دی ۱۳۹۹

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۱۰۱۱
۰
۲۲ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۱۰۷۴
۰
۲۹ آبان ۱۳۹۹

وردپرس

وردپرس یک سیستم مدیریت محتوای قوی می باشد که با استفاده از آن می توان وب سایت ها و وبلاگ های گوناگونی با هر شرایطی را طراحی کرد چرا که این سیستم و ...


۸۲۲
۰
۱۳ آذر ۱۳۹۹