0% found this document useful (0 votes)
1 views

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
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

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
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