2016-08-22 4 views
-1

Пожалуйста, помогите мне в сомнении относительно галереи изображений. Обычно обычная галерея изображений находится в линейном или прямолинейном виде, то есть одно изображение за другим вдоль прямой линии. Возможно ли каким-либо образом отображать образы, вращающиеся вокруг кругового пути. Как показано ниже:Дизайн макета галереи изображений Android

enter image description here

+0

поиск Cricular карусельного андроида ... вы получите ответ .... – karan

+0

Возможный дубликат [3D Карусель в Android] (http://stackoverflow.com/questions/20883849/3d-carousel-in-android) – karan

ответ

1

использовали эту ссылку ...

https://github.com/ludovicroland/carousel-android

Gradle

compile 'fr.rolandl:carousel:[email protected]' 

Maven

<dependency> 
<groupId>fr.rolandl</groupId> 
<artifactId>carousel</artifactId> 
<version>1.0.1</version> 
<type>aar</type> 
</dependency> 

Как Библиотека проекта

Alternati vely, проверьте этот репозиторий и добавьте его в качестве проекта библиотеки.

$ мерзавец клон https://github.com/ludovicroland/carousel-android.git Импорт проекта в ваш любимый IDE и добавить android.library.reference.1 =/путь/к/карусельного андроида/библиотека для ваших project.properties.

Layout

Вы должны объявить Carousel непосредственно в макете.

<fr.rolandl.carousel.Carousel 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/carousel" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:animationDuration="200" 
/> 

Предметы

Элемент должен быть связан с бизнес-объектом (классический Pojo), например:

public final class Photo 
implements Serializable 
{ 

private static final long serialVersionUID = 1L; 

public final String name; 

public final String image; 

public Photo(String name, String image) 
{ 
this.name = name; 
this.image = image; 
} 

} 

с конкретной планировкой, например:

<TextView 
android:id="@+id/name" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="@android:color/black" 
/> 

и с CarouselItem, которые должны переопределять extractView и обновления методов:

public final class PhotoItem 
    extends CarouselItem<Photo> 
    { 

private ImageView image; 

private TextView name; 

private Context context; 

    public PhotoItem(Context context) 
    { 
    super(context, R.layout.item); 
    this.context = context; 
    } 

    @Override 
public void extractView(View view) 
{ 
    image = (ImageView) view.findViewById(R.id.image); 
    name = (TextView) view.findViewById(R.id.name); 
} 

@Override 
public void update(Photo photo) 
{ 
    image.setImageResource(getResources().getIdentifier(photo.image, "drawable", context.getPackageName())); 
    name.setText(photo.name); 
} 

    } 

адаптер

Вы также должны создать свой собственный адаптер, который принимает список бизнес-объекта в конструкторе :

public final class MyAdapter 
extends CarouselAdapter<Photo> 
{ 

public MyAdapter(Context context, List<Photo> photos) 
{ 
    super(context, photos); 
} 

@Override 
public CarouselItem<Photo> getCarouselItem(Context context) 
{ 
    return new PhotoItem(context); 
} 

} 

В деятельности/Фрагмент

В своей деятельности или фрагмента, который использует карусель, вы можете найти свою ссылку:

final Carousel carousel; = (Carousel) findViewById(R.id.carousel); 
create your list of business objects: 

final List<Photo> photos = new ArrayList<>(); 
photos.add(new Photo("Photo1", "fotolia_40649376")); 
photos.add(new Photo("Photo2", "fotolia_40973414")); 
photos.add(new Photo("Photo3", "fotolia_48275073")); 
photos.add(new Photo("Photo4", "fotolia_50806609")); 
photos.add(new Photo("Photo5", "fotolia_61643329")); 

создать экземпляр адаптера:

final CarouselAdapter adapter = adapter = new MyAdapter(this, photos); 
carousel.setAdapter(adapter); 
adapter.notifyDataSetChanged(); 

Listeners

Вы также можете использовать некоторые слушатели на карусели.

OnItemClickListener:

carousel.setOnItemClickListener(new OnItemClickListener() 
    { 

    @Override 
    public void onItemClick(CarouselBaseAdapter<?> carouselBaseAdapter, View view, int position, long id) 
    { 
    Toast.makeText(getApplicationContext(), "The item '" + position + "' has been clicked", Toast.LENGTH_SHORT).show(); 
    carousel.scrollToChild(position); 
    } 

}); 

OnItemLongClickListener:

carousel.setOnItemLongClickListener(new OnItemLongClickListener() 
    { 

    @Override 
    public boolean onItemLongClick(CarouselBaseAdapter<?> carouselBaseAdapter, View view, int position, long id) 
    { 
    Toast.makeText(getApplicationContext(), "The item '" + position + "' has been long clicked", Toast.LENGTH_SHORT).show(); 
    carousel.scrollToChild(position); 
    return false; 
    } 

    }); 

смотрите также эту ссылку ..

https://github.com/panhuachao/Android-3D-Carousel

+0

Спасибо за ваш ответ Er. Арджун саини ... Позволь мне попробовать это. Будет опубликовать сообщение об ответе – bharatkumar

+0

работает как шарм. Спасибо. – bharatkumar

+0

Добро пожаловать @bharatkumar ..... –

0

Нам нужно создать 2 файла XML, 1) для Овал вытяжке и 2) для дизайна макета. Создайте менее 2 файлов и добавьте их в свой проект.

drwbl_ovalview.xml (Рез -> вытяжке)

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 

    <stroke 
     android:width="5dp" 
     android:color="#5EC7F1" /> 
</shape> 

activity_main.xml (Рез -> макет)

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

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:layout_margin="16dp"> 

     <ImageView 
      android:id="@+id/imgvw_ovalview" 
      android:layout_width="match_parent" 
      android:layout_height="250dp" 
      android:layout_margin="25dp" 
      android:src="@drawable/drwbl_ovalview" 
      android:contentDescription="Images"/> 

     <ImageView 
      android:id="@+id/imgvw_yahoo" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_centerVertical="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:src="@drawable/yahoo_icon" 
      android:contentDescription="Yahoo images"/> 

     <ImageView 
      android:id="@+id/imgvw_messenger" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentTop="true" 
      android:src="@drawable/messenger_icon" 
      android:contentDescription="Messenger images"/> 

     <ImageView 
      android:id="@+id/imgvw_google" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_centerVertical="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:src="@drawable/google_icon" 
      android:contentDescription="Google images"/> 

     <ImageView 
      android:id="@+id/imgvw_facebook" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentBottom="true" 
      android:src="@drawable/facebook_icon" 
      android:contentDescription="Facbook image"/> 
    </RelativeLayout> 

</LinearLayout> 

скриншот Обзор выше код enter image description here

+0

Спасибо за ваш ответ Jaldeep Asodariya. Но я догадываюсь, что у меня был неправильный запрос. Я искал решение, упомянутое в обзоре галереи. – bharatkumar

+0

Спасибо @bharatkumar и извините за непонимание. –

Смежные вопросы