mirror of
https://github.com/androidx/media.git
synced 2025-05-14 11:09:53 +08:00
Add vertical text support to SubtitleWebView
PiperOrigin-RevId: 304186326
This commit is contained in:
parent
eb65f5e20a
commit
262f19aa63
@ -212,6 +212,19 @@ import java.util.List;
|
||||
|
||||
String textAlign = convertAlignmentToCss(cue.textAlignment);
|
||||
|
||||
String writingMode = convertVerticalTypeToCss(cue.verticalType);
|
||||
|
||||
// All measurements are done orthogonally for vertical text (i.e. from left of screen instead
|
||||
// of top, or vice versa). So flip the position & translation values.
|
||||
if (cue.verticalType == Cue.VERTICAL_TYPE_LR || cue.verticalType == Cue.VERTICAL_TYPE_RL) {
|
||||
float tmpFloat = horizontalPositionPercent;
|
||||
horizontalPositionPercent = verticalPositionPercent;
|
||||
verticalPositionPercent = tmpFloat;
|
||||
int tmpInt = horizontalTranslatePercent;
|
||||
horizontalTranslatePercent = verticalTranslatePercent;
|
||||
verticalTranslatePercent = tmpInt;
|
||||
}
|
||||
|
||||
html.append(
|
||||
Util.formatInvariant(
|
||||
"<div style=\""
|
||||
@ -220,12 +233,14 @@ import java.util.List;
|
||||
+ "top:%.2f%%;"
|
||||
+ "width:%s;"
|
||||
+ "text-align:%s;"
|
||||
+ "writing-mode:%s;"
|
||||
+ "transform:translate(%s%%,%s%%);"
|
||||
+ "\">",
|
||||
horizontalPositionPercent,
|
||||
verticalPositionPercent,
|
||||
width,
|
||||
textAlign,
|
||||
writingMode,
|
||||
horizontalTranslatePercent,
|
||||
verticalTranslatePercent))
|
||||
.append(SpannedToHtmlConverter.convert(cue.text))
|
||||
@ -241,6 +256,18 @@ import java.util.List;
|
||||
"base64");
|
||||
}
|
||||
|
||||
private String convertVerticalTypeToCss(@Cue.VerticalType int verticalType) {
|
||||
switch (verticalType) {
|
||||
case Cue.VERTICAL_TYPE_LR:
|
||||
return "vertical-lr";
|
||||
case Cue.VERTICAL_TYPE_RL:
|
||||
return "vertical-rl";
|
||||
case Cue.TYPE_UNSET:
|
||||
default:
|
||||
return "horizontal-tb";
|
||||
}
|
||||
}
|
||||
|
||||
private String convertAlignmentToCss(@Nullable Layout.Alignment alignment) {
|
||||
if (alignment == null) {
|
||||
return "unset";
|
||||
|
Loading…
x
Reference in New Issue
Block a user