Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a photo album application. Your application will load a collection of ima

ID: 3823073 • Letter: C

Question

Create a photo album application. Your application will load a collection of images and displays them in a photo album layout. The program will allow the user to tag images with metadata: • Title for the photo. Limited to 100 characters. • Description for the photo. Limited to 300 characters. • Date taken • Place taken Functional Specification 1. Your album should be able to display the pictures sorted by Title, Date, and Place. 2. When the user clicks on a photo, the metadata should be displayed. 3. The user should be able to add or remove photos from the album. Note: Please do not forget to use necessary comments and include text document or pdf. (Java assignment)

Explanation / Answer

This is the functions and outlay of the particular program you have queried. Hope it helps!!!


gallery.xml

<!---gallery.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"
android:background="@drawable/bag_cake"
>
<ListView
android:id="@+id/lvdata"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginBottom="1dp"
android:layout_weight="1"
android:cacheColorHint="#251e1b" android:layout_marginTop="1dp">
</ListView>


</LinearLayout>
Next the row-item. This will be used by the photoAdapter and define how each row item should be placed.


row_photo.xml

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



<LinearLayout
android:layout_width="wrap_content"
android:layout_height="80dp"
android:layout_weight="1" >


<ImageView
android:id="@+id/iv1"
android:layout_width="80dp"
android:layout_height="fill_parent"
android:layout_margin="2dp"
android:layout_weight="0.25"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />


<ImageView
android:id="@+id/iv2"
android:layout_width="80dp"
android:layout_height="fill_parent"
android:layout_margin="2dp"
android:layout_weight="0.25"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />


<ImageView
android:id="@+id/iv3"
android:layout_width="80dp"
android:layout_height="fill_parent"
android:layout_margin="2dp"
android:layout_weight="0.25"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />


<ImageView
android:id="@+id/iv4"
android:layout_width="80dp"
android:layout_height="fill_parent"
android:layout_margin="2dp"
android:layout_weight="0.25"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />

</LinearLayout>

</LinearLayout>


Thats it for the xml. There java files, one that defines the row as an object(Photo class), the PhotoAdapter Class and the implementation

Photo.java


package com.gilo.zosi;

public class Photo {
private int iv1;
private int iv2;
private int iv3;
private int iv4;

public Photo(int iv1, int iv2, int iv3, int iv4) {
//The constructor takes the ids of three images and initiliases them
super();
this.iv1 = iv1;
this.iv2 = iv2;
this.iv3 = iv3;
this.iv4 = iv4;
}

public int getIv1() {
return iv1;
}

public void setIv1(int iv1) {
this.iv1 = iv1;
}

public int getIv2() {
return iv2;
}

public void setIv2(int iv2) {
this.iv2 = iv2;
}

public int getIv3() {
return iv3;
}

public void setIv3(int iv3) {
this.iv3 = iv3;
}

public int getIv4() {
return iv4;
}

public void setIv4(int iv4) {
this.iv4 = iv4;
}

}


PhotoAdapter.java


package com.gilo.zosi;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class PhotoAdapter extends BaseAdapter {
private ArrayList<Photo> list;
private LayoutInflater mInflater;

public PhotoAdapter(Context context, ArrayList<Photo> list) {
this.list = list;
this.mInflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row_photo, null);
holder = new ViewHolder();
holder.iv1 = (ImageView) convertView.findViewById(R.id.iv1);
holder.iv2 = (ImageView) convertView.findViewById(R.id.iv2);
holder.iv3 = (ImageView) convertView.findViewById(R.id.iv3);
holder.iv4 = (ImageView) convertView.findViewById(R.id.iv4);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.iv1.setImageResource(list.get(position).getIv1());
holder.iv2.setImageResource(list.get(position).getIv2());
holder.iv3.setImageResource(list.get(position).getIv3());
holder.iv4.setImageResource(list.get(position).getIv4());
return convertView;
}

private static class ViewHolder {
private ImageView iv1, iv2, iv3, iv4;
}
}


package com.gilo.zosi;

import java.util.ArrayList;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class Gallery extends Activity{

ListView gallery;
ArrayList<Photo> row = new ArrayList<Photo>();

protected void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.gallery);

gallery = (ListView) findViewById(R.id.lvdata);

init();

gallery.setAdapter(new PhotoAdapter(getBaseContext(), row));
}

private void init(){

Photo p1 = new Photo(R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4);
Photo p2 = new Photo(R.drawable.p5, R.drawable.p6, R.drawable.p7, R.drawable.p8);
Photo p3 = new Photo(R.drawable.p9, R.drawable.p10, R.drawable.p11, R.drawable.p12);

row.add(p1);
row.add(p2);
row.add(p3);
row.add(p2);
row.add(p1);
row.add(p3);
row.add(p2);


}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote