0% found this document useful (0 votes)
3 views4 pages

ImageSwitcher_GridView_Code (1)

The document contains code for an Android application with two main activities: MainActivity and GridActivity. MainActivity features an ImageSwitcher that allows users to cycle through images using 'Previous' and 'Next' buttons, and a button to open a grid view of images. GridActivity displays images in a grid format and shows a toast message when an image is selected.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views4 pages

ImageSwitcher_GridView_Code (1)

The document contains code for an Android application with two main activities: MainActivity and GridActivity. MainActivity features an ImageSwitcher that allows users to cycle through images using 'Previous' and 'Next' buttons, and a button to open a grid view of images. GridActivity displays images in a grid format and shows a toast message when an image is selected.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

MainActivity.

java
package com.example.imageapplication;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ViewSwitcher;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {


ImageSwitcher imageSwitcher;
Button previous, next, openGrid;
int[] imageIds = {R.drawable.rose1, R.drawable.rose2, R.drawable.rose3, R.drawable.rose1, R.drawable.rose2,
R.drawable.rose3};
int count = imageIds.length;
int currentIndex = 0;

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

imageSwitcher = findViewById(R.id.imageimageSwitcher1);
previous = findViewById(R.id.button);
next = findViewById(R.id.button2);
openGrid = findViewById(R.id.openGridButton);

imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView imageView = new ImageView(getApplicationContext());
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
return imageView;
}
});

Animation in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);


Animation out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);
imageSwitcher.setImageResource(imageIds[currentIndex]);

previous.setOnClickListener(v -> {
currentIndex--;
if (currentIndex < 0)
currentIndex = count - 1;
imageSwitcher.setImageResource(imageIds[currentIndex]);
});

next.setOnClickListener(v -> {
currentIndex++;
if (currentIndex == count)
currentIndex = 0;
imageSwitcher.setImageResource(imageIds[currentIndex]);
});

openGrid.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, GridActivity.class);
startActivity(intent);
});
}
}

GridActivity.java
package com.example.imageapplication;

import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class GridActivity extends AppCompatActivity {


int[] imageIds = {R.drawable.rose1, R.drawable.rose2, R.drawable.rose3, R.drawable.rose1, R.drawable.rose2,
R.drawable.rose3};

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

GridView gridView = findViewById(R.id.gridView1);


gridView.setAdapter(new ImageAdapter(this, imageIds));

gridView.setOnItemClickListener((parent, view, position, id) -> {


Toast.makeText(getApplicationContext(), "Picture " + (position + 1) + " Selected",
Toast.LENGTH_SHORT).show();
});
}

private static class ImageAdapter extends BaseAdapter {


Context context;
int[] imageIds;

public ImageAdapter(Context context, int[] imageIds) {


this.context = context;
this.imageIds = imageIds;
}

@Override
public int getCount() {
return imageIds.length;
}
@Override
public Object getItem(int position) {
return imageIds[position];
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(context);
imageView.setLayoutParams(new ViewGroup.LayoutParams(150, 150));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(imageIds[position]);
return imageView;
}
}
}

activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">

<ImageSwitcher
android:id="@+id/imageimageSwitcher1"
android:layout_width="match_parent"
android:layout_height="300dp" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_marginTop="16dp">

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Previous" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:layout_marginLeft="16dp" />
</LinearLayout>
<Button
android:id="@+id/openGridButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open Grid View"
android:layout_marginTop="24dp"
android:layout_gravity="center_horizontal" />
</LinearLayout>

activity_grid.xml
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:padding="10dp"
android:stretchMode="columnWidth"
android:gravity="center" />

You might also like