mirror of
https://github.com/bspeice/itcs4180
synced 2024-12-04 13:18:16 -05:00
Added Async functionality and grid display. Still need to fix sizes and
display text under pictures.
This commit is contained in:
parent
d41468fc6f
commit
61c9379b05
@ -12,3 +12,4 @@
|
|||||||
|
|
||||||
# Project target.
|
# Project target.
|
||||||
target=android-19
|
target=android-19
|
||||||
|
android.library.reference.1=../../../workspace/gridlayout_v7
|
||||||
|
@ -1,11 +1,28 @@
|
|||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/LinearLayout1"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
tools:context=".PhotoActivity" >
|
tools:context=".PhotoActivity" >
|
||||||
|
|
||||||
</RelativeLayout>
|
<GridView
|
||||||
|
android:id="@+id/GridView1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:numColumns="@integer/COLUMN_COUNT"
|
||||||
|
android:columnWidth="90dp" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/ExitButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:text="@string/Exit" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
5
InClass3/res/values/integers.xml
Normal file
5
InClass3/res/values/integers.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<integer name="ROW_COUNT">2</integer>
|
||||||
|
<integer name="COLUMN_COUNT">2</integer>
|
||||||
|
</resources>
|
@ -10,5 +10,6 @@
|
|||||||
<string name="football_main_image">http://farm9.staticflickr.com/8441/7882624916_5f62cb318f_z.jpg</string>
|
<string name="football_main_image">http://farm9.staticflickr.com/8441/7882624916_5f62cb318f_z.jpg</string>
|
||||||
<string name="title_activity_photo">UNC Charlotte Photos</string>
|
<string name="title_activity_photo">UNC Charlotte Photos</string>
|
||||||
<string name="title_activity_photo_thread">UNC Charlotte Photos</string>
|
<string name="title_activity_photo_thread">UNC Charlotte Photos</string>
|
||||||
|
<string name="Exit">Exit</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1,15 +1,63 @@
|
|||||||
package edu.uncc.itcs4180.hw4;
|
package edu.uncc.itcs4180.hw4;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.BitmapFactory;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.BaseAdapter;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.GridView;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
public class PhotoActivity extends Activity {
|
public class PhotoActivity extends Activity {
|
||||||
|
|
||||||
|
ProgressDialog progress;
|
||||||
|
LinearLayout root;
|
||||||
|
GridView photoGrid;
|
||||||
|
public int[] imageUrlIds = {R.string.uncc_main_image, R.string.football_main_image,
|
||||||
|
R.string.ifest_main_image, R.string.commencement_main_image
|
||||||
|
};
|
||||||
|
ArrayList<Bitmap> bitmapList = new ArrayList<Bitmap>();
|
||||||
|
int downloadProgress;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_photo);
|
setContentView(R.layout.activity_photo);
|
||||||
|
|
||||||
|
root = (LinearLayout)findViewById(R.id.LinearLayout1);
|
||||||
|
photoGrid = (GridView)findViewById(R.id.GridView1);
|
||||||
|
downloadProgress = 0;
|
||||||
|
|
||||||
|
//set the progress dialog
|
||||||
|
progress = new ProgressDialog(this);
|
||||||
|
progress.setMessage("Loading...");
|
||||||
|
progress.setCancelable(false);
|
||||||
|
progress.show();
|
||||||
|
|
||||||
|
for(int x : imageUrlIds)//download images
|
||||||
|
{
|
||||||
|
new DownloadPhoto().execute(getString(x));
|
||||||
|
}
|
||||||
|
|
||||||
|
//create exit button
|
||||||
|
Button exit = (Button)findViewById(R.id.ExitButton);
|
||||||
|
exit.setOnClickListener(new View.OnClickListener() {
|
||||||
|
public void onClick(View v)
|
||||||
|
{
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -18,5 +66,90 @@ public class PhotoActivity extends Activity {
|
|||||||
getMenuInflater().inflate(R.menu.photo, menu);
|
getMenuInflater().inflate(R.menu.photo, menu);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class DownloadPhoto extends AsyncTask<String, Void, Bitmap>
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
protected Bitmap doInBackground(String... url)
|
||||||
|
{
|
||||||
|
Bitmap image = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
URL imageUrl = new URL(url[0]);
|
||||||
|
image = BitmapFactory.decodeStream(imageUrl.openStream());
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Bitmap result)
|
||||||
|
{
|
||||||
|
if (result == null)//set failed images to a default image
|
||||||
|
{
|
||||||
|
//set blank image
|
||||||
|
}
|
||||||
|
|
||||||
|
bitmapList.add(result);
|
||||||
|
|
||||||
|
downloadProgress++;
|
||||||
|
if(downloadProgress>=imageUrlIds.length)
|
||||||
|
{
|
||||||
|
progress.dismiss();
|
||||||
|
photoGrid.setAdapter(new ImageAdapter(photoGrid.getContext()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ImageAdapter extends BaseAdapter
|
||||||
|
{
|
||||||
|
private Context context;
|
||||||
|
|
||||||
|
public ImageAdapter(Context context)
|
||||||
|
{
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCount()
|
||||||
|
{
|
||||||
|
return imageUrlIds.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getItem(int position)
|
||||||
|
{
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getItemId(int position)
|
||||||
|
{
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View getView(int position, View convertView, ViewGroup parent)
|
||||||
|
{
|
||||||
|
ImageView newImageView = new ImageView(getBaseContext());
|
||||||
|
|
||||||
|
if(convertView == null)
|
||||||
|
{
|
||||||
|
newImageView.setLayoutParams(new GridView.LayoutParams(
|
||||||
|
140, 140));
|
||||||
|
newImageView.setPadding(5, 5, 5, 5);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newImageView = (ImageView) convertView;
|
||||||
|
}
|
||||||
|
newImageView.setImageBitmap(bitmapList.get(position));
|
||||||
|
|
||||||
|
return newImageView;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user