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

Add a simple fullscreen activity for flickr sample

上级 1a7d5dfe
......@@ -21,6 +21,8 @@
</intent-filter>
</activity>
<activity android:name=".FullscreenActivity" />
</application>
</manifest>
package com.bumptech.glide.samples.flickr;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
......@@ -173,6 +174,14 @@ public class FlickrPhotoGrid extends Fragment implements PhotoViewer {
.thumbnail(thumbnail ? thumbnailRequest.load(current) : null)
.into(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = FullscreenActivity.getIntent(getActivity(), current);
startActivity(intent);
}
});
return imageView;
}
}
......
package com.bumptech.glide.samples.flickr;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
......@@ -190,6 +191,14 @@ public class FlickrPhotoList extends Fragment implements PhotoViewer {
.load(current)
.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());
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;
import android.os.Parcel;
import android.os.Parcelable;
import org.json.JSONException;
import org.json.JSONObject;
/**
* 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 owner;
private final String title;
......@@ -15,6 +29,7 @@ public class Photo {
private final String secret;
private String partialUrl = null;
public Photo(JSONObject jsonPhoto) throws JSONException {
this.id = jsonPhoto.getString("id");
this.owner = jsonPhoto.getString("owner");
......@@ -24,6 +39,25 @@ public class Photo {
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() {
if (partialUrl == null) {
partialUrl = Api.getCacheableUrl(this);
......@@ -99,4 +133,9 @@ public class Photo {
result = 31 * result + secret.hashCode();
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.
先完成此消息的编辑!
想要评论请 注册