Add play button to videos

filtering
Floens 10 years ago
parent d3a53c428c
commit 351ec66798
  1. 27
      Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java
  2. BIN
      Clover/app/src/main/res/drawable-hdpi/ic_play_circle_outline_white_48dp.png
  3. BIN
      Clover/app/src/main/res/drawable-mdpi/ic_play_circle_outline_white_48dp.png
  4. BIN
      Clover/app/src/main/res/drawable-xhdpi/ic_play_circle_outline_white_48dp.png
  5. BIN
      Clover/app/src/main/res/drawable-xxhdpi/ic_play_circle_outline_white_48dp.png
  6. BIN
      Clover/app/src/main/res/drawable-xxxhdpi/ic_play_circle_outline_white_48dp.png

@ -25,6 +25,7 @@ import android.net.Uri;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.MediaController;
@ -56,6 +57,8 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener
private static final String TAG = "MultiImageView";
private ImageView playView;
private PostImage postImage;
private Callback callback;
@ -87,11 +90,18 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener
private void init() {
setOnClickListener(this);
playView = new ImageView(getContext());
playView.setVisibility(View.GONE);
playView.setImageResource(R.drawable.ic_play_circle_outline_white_48dp);
addView(playView, new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER));
}
public void bindPostImage(PostImage postImage, Callback callback) {
this.postImage = postImage;
this.callback = callback;
playView.setVisibility(postImage.type == PostImage.Type.MOVIE ? View.VISIBLE : View.GONE);
}
public PostImage getPostImage() {
@ -210,7 +220,7 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener
image.setImage(ImageSource.uri(file.getAbsolutePath()));
image.setOnClickListener(MultiImageView.this);
addView(image, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
addView(image, 0, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
image.setCallback(new CustomScaleImageView.Callback() {
@Override
@ -329,7 +339,7 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener
videoView.setZOrderOnTop(true);
videoView.setMediaController(new MediaController(getContext()));
addView(videoView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.CENTER));
addView(videoView, 0, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.CENTER));
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
@ -423,15 +433,18 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener
// Remove all other views
boolean alreadyAttached = false;
for (int i = getChildCount() - 1; i >= 0; i--) {
if (getChildAt(i) != view) {
removeViewAt(i);
} else {
alreadyAttached = true;
View child = getChildAt(i);
if (child != playView) {
if (child != view) {
removeViewAt(i);
} else {
alreadyAttached = true;
}
}
}
if (!alreadyAttached) {
addView(view, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
addView(view, 0, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Loading…
Cancel
Save