همیار اندروید
همیار اندروید
همیار اندروید
نه
بله
منوی وبسایت
حساب کاربری

همیار اندروید

مرجــع تخصـصــی توسـعــه انــدرویــد

منوی وبسایت
حساب کاربری

آموزش ساخت اسلاید شو Slide Show در برنامه نویسی اندروید

آموزش ساخت اسلاید شو Slide Show در برنامه نویسی اندروید
نوع هزینه
شرکت کنندگان
دریافت دسترسی
مشخصات این آموزش
موضوعات مرتبط
زبان برنامه‌نویسی
Java   ,   XML
نوع قسمت‌ها
محتوای ارائه شده
مهارت های مورد نیاز
وضعیت انتشار
سطح آموزش
آخرین آپدیت
یادگیری این آموزش

به نام خدا

سلام خدمت دوستان عزیز و همیشه همراه

در این بخش از آموزش میخام که با هم یک اسلاید شو طراحی کنیم

یعنی چندتا عکس داشته باشیم و با کشیدن انگشت روی صفحه دستگاه 

عکس بعدی به نمایش در بیاد و بتونیم با کشیدن انگشت به سمت چپ و راست 

عکس بعدی یا قبلی را به نمایش در بیارم

خب میریم سراغ آموزش

 

قدم اول

شما باید چندتا عکس درون فایل drawable اندروید استودیو بریزید

که در ادامه کار باید اونا رو درون پروژه جای گذاری کنیم 

 

 

قدم دوم

در activity_main  دوتا ویو اضافه می کنیم یکی ViewPager و دیگری ImageView 

که میتونید کدهاشو در پایین داشته باشین

activity_main.xml

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

     <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="HamyarAndroid.com"
          android:layout_marginStart="50dp"
          android:textColor="#4BB84F"
          android:gravity="center_horizontal"
          android:textSize="30sp" />


    <androidx.viewpager.widget.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewpager"/>



    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/image_view"
        tools:src="@drawable/aks1"
        android:adjustViewBounds="true"/>



</RelativeLayout>

 

قدم سوم

در این مرحله میریم سراغ نوشتن کدهای جاوا

خب من یک Activity جدید ایجاد می کنم و اسمشو Adapter قرار میدم

که این کلاس جدید رو که ساختم extends میشه از PagerAdapter

بعد از اون که extends کردم با یک ارور مواجه میشم بخاطر Constructors ها هستش و من

میام و یک Ctrl + Enter رو میزنم  و Constructors ها رو انتخاب و اضافه می کنم

که میتونید در کد زیر ببینید

Adapter.java.java

package com.hamyarandroid.SlideShow;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;


public class Adapter extends PagerAdapter{
    @Override
    public int getCount() {
        return 0;
    }

    
    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return false;
    }
}

 

 

قدم چهارم

من میام و دوتا Property میسازم یکی از جنس Context و دیگری از جنس Integer 

و آدرس عکسای ذخیره شده رو هم درون Integer میریزم و یک متد به نام Adapter ایجاد میکنم و Context 

را درون اون میریزیم

 Constructors را  هم که در بالا نوشتیم  را طبق کد زیر تغییر میدیم منظورم  

متد  ()getCount  و  isViewFromObject هستش

Adapter.java

package com.hamyarandroid.SlideShow;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;


public class Adapter extends PagerAdapter {
    
    private Context mContext;
    private Integer [] Slides = {R.drawable.aks1,R.drawable.aks2,R.drawable.aks3};


    public Adapter(Context context){
        mContext = context;
    }
    

    @Override
    public int getCount() {
        return Slides.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }
}

 

 

 

در مرحله پنجم

در این مرحله من میام و یک متد instantiateItem اضافه می کنم برای گرفتن ImageView و ست کردن عکس ها و .....

که در پایین کد خط به خط توضیح میدم

Adapter.java

@Override
    public Object instantiateItem( ViewGroup container, int position) {

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.activity_main,null);


        ImageView imageview = view.findViewById(R.id.image_view);
        imageview.setImageResource(Slides[position]);

        ViewPager viewPager = (ViewPager)container;
        viewPager.addView(view);

        return view;

    }

خط 4 و 5

من اومدم و main_activity  را inflate کردم درون View

خط 8 و 9

ImageView رو گرفتم و عکس ها رو درونش ست کردم

خط 11

تبدیل container به ViewPager

خط 12

اضافه کردن ویوها به ViewPager

مرحله ششم

من میام یک متد destroyItem اضافه میکنم و continer و object را 

به ویو و ویوپیجر کست میکنم 

Adapter.java

@Override
    public void destroyItem( ViewGroup container, int position,  Object object) {

         ViewPager mviewPager = (ViewPager) container;
         View view = (View)object;
         mviewPager.removeView(view);

    }

کد نهایی کلاس Adapter.java را که در بالا توضیح دادم را می تونید در پایین ببینید

Adapter.java

package com.hamyarandroid.slideshow;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;




public class Adapter extends PagerAdapter {

    private Context mContext;
    private Integer [] Slides = {R.drawable.aks1,R.drawable.aks2,R.drawable.aks3};

    public Adapter(Context context)
    {
        mContext = context;
    }


    @Override
    public int getCount() {
        return Slides.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }


    @Override
    public Object instantiateItem( ViewGroup container, int position) {

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.activity_main,null);


        ImageView imageview = view.findViewById(R.id.image_view);
        imageview.setImageResource(Slides[position]);

        ViewPager viewPager = (ViewPager)container;
        viewPager.addView(view);

        return view;

    }

    @Override
    public void destroyItem( ViewGroup container, int position,  Object object) {

         ViewPager mviewPager = (ViewPager) container;
         View view = (View)object;
         mviewPager.removeView(view);

    }
}

 

 

مرحله هفتم

در MainActivity.java میام و از کلاس Adapter.java یک New می گیرم

و Adapter رو ست می کنم

MainActivity.java

package com.hamyarandroid.slideshow;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

        viewpager=findViewById(R.id.viewpager);

        Adapter adapter = new Adapter(this);
        viewpager.setAdapter(adapter);

    }
}

 

تصاویر خروجی برنامه رو می تونید در پایین مشاهده کنید

 

 

 

 

امیدوارم که از این آموزش لذت برده باشین

موفق و پیروز و سربلند باشد

HRoid.ir/t182
لینک کوتاه این آموزش برای انتشار در شبکه های اجتماعی
نظرات این آموزش
ابتدا باید وارد حساب کاربری خود شوید ، تا بتوانید برای این آموزش نظری ارسال کنید
هنوز نظری برای این آموزش ثبت نشده است
کپی برداری از محتوا و دیگر منابع اختصاصی به هر نحو غیر مجاز است. حتی با ذکر منبع. در صورت تخلف پیگرد قانونی به همراه خواهد داشت.
Copyright © 2020 , www.HamyarRoid.com , www.HamyarAndroid.com , Terms , Sitemap
خلـــق هـمیـار انـدرویــد با
logo-samandehi