Spherical/app/src/main/java/de/trac/spherical/SphereFragment.java

83 lines
2.4 KiB
Java
Raw Normal View History

2017-09-18 02:37:17 +02:00
package de.trac.spherical;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.view.GestureDetectorCompat;
2017-09-18 02:37:17 +02:00
import android.util.Log;
import android.view.LayoutInflater;
2017-09-19 15:34:03 +02:00
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
2017-09-18 02:37:17 +02:00
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import butterknife.BindView;
import butterknife.ButterKnife;
2017-09-18 02:37:17 +02:00
import de.trac.spherical.rendering.PhotoSphereSurfaceView;
/**
2017-09-22 18:07:41 +02:00
* Fragment containing a PhotoSphereSurfaceView which displays the image projected on a sphere.
2017-09-18 02:37:17 +02:00
*/
2017-09-19 15:34:03 +02:00
public class SphereFragment extends ImageFragment implements View.OnTouchListener {
private static final String TAG = "SphericalSFrag";
2017-09-18 02:37:17 +02:00
@BindView(R.id.container_sphere)
FrameLayout frameLayout;
2017-09-18 02:37:17 +02:00
private PhotoSphereSurfaceView surfaceView;
private Bitmap bitmap;
2017-09-18 02:37:17 +02:00
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_sphere, parent, false);
ButterKnife.bind(this, view);
return view;
2017-09-18 02:37:17 +02:00
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
2017-09-19 15:34:03 +02:00
setHasOptionsMenu(true);
2017-09-18 02:37:17 +02:00
surfaceView = new PhotoSphereSurfaceView(getContext());
// Initialize renderer and setup surface view.
frameLayout.addView(surfaceView);
2017-09-18 02:37:17 +02:00
surfaceView.setOnTouchListener(this);
updateBitmap(bitmap);
2017-09-18 02:37:17 +02:00
}
@Override
public boolean onTouch(View v, MotionEvent event) {
MainActivity activity = ((MainActivity)getActivity());
if (activity != null) {
return activity.getGestureDetector().onTouchEvent(event);
}
return false;
2017-09-18 02:37:17 +02:00
}
2017-09-19 15:34:03 +02:00
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sphere, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void updateBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
if (surfaceView != null && bitmap != null) {
surfaceView.setBitmap(bitmap);
2017-09-19 15:34:03 +02:00
}
}
2017-12-19 16:28:43 +01:00
2018-02-20 12:57:36 +01:00
public PhotoSphereSurfaceView getSurfaceView() {
return surfaceView;
2017-12-19 16:28:43 +01:00
}
2017-09-18 02:37:17 +02:00
}