Use image card view for DetailsFragment example

b/17499864

Change-Id: I7c5f77da52424afa5020a66b032df68cfdf5846e
This commit is contained in:
Dake Gu
2014-09-16 14:31:22 -07:00
parent bd2bea18ab
commit fd5a5de66a

View File

@@ -13,9 +13,11 @@
*/
package com.example.android.leanback;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.view.ViewCompat;
import android.support.v17.leanback.widget.Action;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
@@ -23,6 +25,7 @@ import android.support.v17.leanback.widget.ClassPresenterSelector;
import android.support.v17.leanback.widget.DetailsOverviewRow;
import android.support.v17.leanback.widget.DetailsOverviewRowPresenter;
import android.support.v17.leanback.widget.HeaderItem;
import android.support.v17.leanback.widget.ImageCardView;
import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.OnActionClickedListener;
@@ -79,6 +82,16 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemClicked: " + item + " row " + row);
if (item instanceof PhotoItem){
Intent intent = new Intent(getActivity(), DetailsActivity.class);
intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
getActivity(),
((ImageCardView)itemViewHolder.view).getMainImageView(),
DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
getActivity().startActivity(intent, bundle);
}
}
});
setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
@@ -99,6 +112,7 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
public void setItem(PhotoItem photoItem) {
mPhotoItem = photoItem;
mRowsAdapter.clear();
Resources res = getActivity().getResources();
DetailsOverviewRow dor = new DetailsOverviewRow("Details Overview");
dor.setImageDrawable(res.getDrawable(photoItem.getImageResourceId()));
@@ -106,10 +120,13 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
dor.addAction(new Action(2, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a)));
mRowsAdapter.add(dor);
final CardPresenter cardPresenter = new CardPresenter();
for (int i = 0; i < NUM_ROWS; ++i) {
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new StringPresenter());
listRowAdapter.add("Hello world");
listRowAdapter.add("This is a test");
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
HeaderItem header = new HeaderItem(i, "Row " + i, null);
mRowsAdapter.add(new ListRow(header, listRowAdapter));
}