提交 14d04c55 编写于 作者: S Sam Judd

Add a simple fullscreen activity for flickr sample

上级 1a7d5dfe
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".FullscreenActivity" />
</application> </application>
</manifest> </manifest>
package com.bumptech.glide.samples.flickr; package com.bumptech.glide.samples.flickr;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -173,6 +174,14 @@ public class FlickrPhotoGrid extends Fragment implements PhotoViewer { ...@@ -173,6 +174,14 @@ public class FlickrPhotoGrid extends Fragment implements PhotoViewer {
.thumbnail(thumbnail ? thumbnailRequest.load(current) : null) .thumbnail(thumbnail ? thumbnailRequest.load(current) : null)
.into(imageView); .into(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = FullscreenActivity.getIntent(getActivity(), current);
startActivity(intent);
}
});
return imageView; return imageView;
} }
} }
......
package com.bumptech.glide.samples.flickr; package com.bumptech.glide.samples.flickr;
import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.os.Bundle; import android.os.Bundle;
...@@ -190,6 +191,14 @@ public class FlickrPhotoList extends Fragment implements PhotoViewer { ...@@ -190,6 +191,14 @@ public class FlickrPhotoList extends Fragment implements PhotoViewer {
.load(current) .load(current)
.into(viewHolder.imageView); .into(viewHolder.imageView);
viewHolder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = FullscreenActivity.getIntent(getActivity(), current);
startActivity(intent);
}
});
viewHolder.titleText.setText(current.getTitle()); viewHolder.titleText.setText(current.getTitle());
return view; return view;
} }
......
package com.bumptech.glide.samples.flickr;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.samples.flickr.api.Photo;
/**
* A simple activity for viewing a single photo.
*/
public class FullscreenActivity extends FragmentActivity {
private static final String ARG_PHOTO = "photo";
public static Intent getIntent(Context context, Photo photo) {
Intent intent = new Intent(context, FullscreenActivity.class);
intent.putExtra(ARG_PHOTO, photo);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fullscreen_activity);
ImageView fullscreenView = (ImageView) findViewById(R.id.fullscreen_view);
Photo photo = getIntent().getParcelableExtra(ARG_PHOTO);
Glide.with(this)
.load(photo)
.fitCenter()
.into(fullscreenView);
}
}
package com.bumptech.glide.samples.flickr.api; package com.bumptech.glide.samples.flickr.api;
import android.os.Parcel;
import android.os.Parcelable;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
/** /**
* A POJO representing a JSON object returned from Flickr's api representing a single image. * A POJO representing a JSON object returned from Flickr's api representing a single image.
*/ */
public class Photo { public class Photo implements Parcelable {
public static final Creator<Photo> CREATOR = new Creator<Photo>() {
@Override
public Photo createFromParcel(Parcel parcel) {
return new Photo(parcel);
}
@Override
public Photo[] newArray(int i) {
return new Photo[i];
}
};
private final String id; private final String id;
private final String owner; private final String owner;
private final String title; private final String title;
...@@ -15,6 +29,7 @@ public class Photo { ...@@ -15,6 +29,7 @@ public class Photo {
private final String secret; private final String secret;
private String partialUrl = null; private String partialUrl = null;
public Photo(JSONObject jsonPhoto) throws JSONException { public Photo(JSONObject jsonPhoto) throws JSONException {
this.id = jsonPhoto.getString("id"); this.id = jsonPhoto.getString("id");
this.owner = jsonPhoto.getString("owner"); this.owner = jsonPhoto.getString("owner");
...@@ -24,6 +39,25 @@ public class Photo { ...@@ -24,6 +39,25 @@ public class Photo {
this.secret = jsonPhoto.getString("secret"); this.secret = jsonPhoto.getString("secret");
} }
private Photo(Parcel in) {
id = in.readString();
owner = in.readString();
title = in.readString();
server = in.readString();
farm = in.readString();
secret = in.readString();
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(id);
parcel.writeString(owner);
parcel.writeString(title);
parcel.writeString(server);
parcel.writeString(farm);
parcel.writeString(secret);
}
public String getPartialUrl() { public String getPartialUrl() {
if (partialUrl == null) { if (partialUrl == null) {
partialUrl = Api.getCacheableUrl(this); partialUrl = Api.getCacheableUrl(this);
...@@ -99,4 +133,9 @@ public class Photo { ...@@ -99,4 +133,9 @@ public class Photo {
result = 31 * result + secret.hashCode(); result = 31 * result + secret.hashCode();
return result; return result;
} }
@Override
public int describeContents() {
return 0;
}
} }
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fullscreen_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册