package com.marshalchen.common.demoofui.driveimageview.fragments; import android.app.Fragment; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.SeekBar; import com.marshalchen.common.demoofui.R; import ch.haclyon.driveimageview.DriveImageModel; import ch.haclyon.driveimageview.DriveImageView; public class DetailFragment extends Fragment { private static final String ARRAY_POS = "position"; private int arrayPosition; public static final int FOLDER_SEEKBAR_MAX = 120; public static final int FOLDER_SEEKBAR_PROGRESS = 14; public static final int WIDTH_SEEKBAR_MAX = 300; public static final int WIDTH_SEEKBAR_PROGRESS = 120; public static final int HEIGHT_SEEKBAR_MAX = 200; public static final int HEIGHT_SEEKBAR_PROGRESS = 60; public static final int OPACITY_SEEKBAR_MAX = 100; public static final int OPACITY_SEEKBAR_PROGRESS = 70; public static DetailFragment newInstance(int position) { DetailFragment fragment = new DetailFragment(); Bundle args = new Bundle(); args.putInt(ARRAY_POS, position); fragment.setArguments(args); return fragment; } public DetailFragment() { // empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { arrayPosition = getArguments().getInt(ARRAY_POS); } // getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.drive_image_view_fragment_detail, container, false); final DriveImageView imageView = (DriveImageView) view.findViewById(R.id.detail_driveImageView); imageView.setDriveImageModel(new DriveImageModel(MainFragment.sampleTexts[arrayPosition], "test", MainFragment.samplePictures[arrayPosition])); imageView.setBackgroundColor(MainFragment.sampleColours[arrayPosition]); imageView.setCustomHeight(MainFragment.sampleHeights[arrayPosition]); imageView.setAlphaValue(OPACITY_SEEKBAR_PROGRESS / 100.0f); Button animateButton = (Button) view.findViewById(R.id.detail_animatebutton); animateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { imageView.animateText(); } }); createOpacitySeekbar(view, imageView); createFolderEditText(view, imageView); createMainEditText(view, imageView); createHeightSeekBar(view, imageView); createWidthSeekBar(view, imageView); createFolderSeekBar(view, imageView); return view; } private void createFolderSeekBar(View view, final DriveImageView imageView) { SeekBar folderSeekBar = (SeekBar) view.findViewById(R.id.detail_drive_folder); folderSeekBar.setMax(FOLDER_SEEKBAR_MAX); folderSeekBar.setProgress(FOLDER_SEEKBAR_PROGRESS); folderSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { imageView.setFolderCorner(Float.valueOf(i)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } private void createWidthSeekBar(View view, final DriveImageView imageView) { SeekBar widthSeekBar = (SeekBar) view.findViewById(R.id.detail_drive_width); widthSeekBar.setMax(WIDTH_SEEKBAR_MAX); widthSeekBar.setProgress(WIDTH_SEEKBAR_PROGRESS); widthSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { imageView.setCustomFolderSpacing(Float.valueOf(i)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } private void createHeightSeekBar(View view, final DriveImageView imageView) { SeekBar heightSeekBar = (SeekBar) view.findViewById(R.id.detail_drive_height); heightSeekBar.setMax(HEIGHT_SEEKBAR_MAX); heightSeekBar.setProgress(HEIGHT_SEEKBAR_PROGRESS); heightSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { imageView.setCustomHeight(Float.valueOf(i)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } private void createMainEditText(View view, final DriveImageView imageView) { EditText mainEditText = (EditText) view.findViewById(R.id.detail_main); mainEditText.setText(imageView.getDriveImageModel().getMainTitle()); mainEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { DriveImageModel model = imageView.getDriveImageModel(); model.setMainTitle(editable.toString()); imageView.setDriveImageModel(model); } }); } private void createFolderEditText(View view, final DriveImageView imageView) { EditText folderEditText = (EditText) view.findViewById(R.id.detail_folder); folderEditText.setText(imageView.getDriveImageModel().getFolderTitle()); folderEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { DriveImageModel model = imageView.getDriveImageModel(); model.setFolderTitle(editable.toString()); imageView.setDriveImageModel(model); } }); } private void createOpacitySeekbar(View view, final DriveImageView imageView) { SeekBar seekBar = (SeekBar) view.findViewById(R.id.detail_seekbar); seekBar.setMax(OPACITY_SEEKBAR_MAX); seekBar.setProgress(OPACITY_SEEKBAR_PROGRESS); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { imageView.setAlphaValue(Float.valueOf(i / 100.0f)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } }