summaryrefslogtreecommitdiff
authorXiaoliang Wang <xiaoliang.wang@amlogic.com>2016-04-20 03:01:44 (GMT)
committer Xiaoliang Wang <xiaoliang.wang@amlogic.com>2016-04-25 10:32:46 (GMT)
commit88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06 (patch)
tree6cdc3d66307c95d78beee2f98e81bf28d6b91720
parent77bfd2fb2d797e7aee2c580f08d4111780a6478d (diff)
downloadSubTitle-88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06.zip
SubTitle-88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06.tar.gz
SubTitle-88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06.tar.bz2
PD #122915: add set surface view param for subtitle scale
Change-Id: Ib8553b3a7da564d82c76165502ee0b9c39ebe83e
Diffstat
-rw-r--r--[-rwxr-xr-x]src/com/droidlogic/SubTitleService/ISubTitleService.aidl1
-rw-r--r--src/com/droidlogic/SubTitleService/SubTitleService.java33
2 files changed, 31 insertions, 3 deletions
diff --git a/src/com/droidlogic/SubTitleService/ISubTitleService.aidl b/src/com/droidlogic/SubTitleService/ISubTitleService.aidl
index b208da9..0b38b39 100755..100644
--- a/src/com/droidlogic/SubTitleService/ISubTitleService.aidl
+++ b/src/com/droidlogic/SubTitleService/ISubTitleService.aidl
@@ -21,6 +21,7 @@ interface ISubTitleService
void setTextStyle(int style);
void setPosHeight(int height);
void setImgSubRatio(float ratioW, float ratioH, int maxW, int maxH);
+ void setSurfaceViewParam(int x, int y, int w, int h);
void clear();
void resetForSeek();
void hide();
diff --git a/src/com/droidlogic/SubTitleService/SubTitleService.java b/src/com/droidlogic/SubTitleService/SubTitleService.java
index ed06163..924d18f 100644
--- a/src/com/droidlogic/SubTitleService/SubTitleService.java
+++ b/src/com/droidlogic/SubTitleService/SubTitleService.java
@@ -80,6 +80,9 @@ public class SubTitleService extends ISubTitleService.Stub {
private ListView mListView;
private int mCurOptSelect = 0;
+ //for window scale
+ private int mOriginTextSize = 20;
+
public SubTitleService(Context context) {
LOGI("[SubTitleService]");
mContext = context;
@@ -90,13 +93,38 @@ public class SubTitleService extends ISubTitleService.Stub {
if (mDebug) Log.i(TAG, msg);
}
+ public void setSurfaceViewParam(int x, int y, int w, int h) {
+ int originW = mDisplay.getWidth();
+ int originH = mDisplay.getHeight();
+ if (originW == 0 || originH == 0 || w == 0 || h == 0) {
+ Log.e(TAG, "[setSurfaceViewParam]originW:" + originW + ", originH:" + originH + ", w:" + w + ", h:" + h);
+ return;
+ }
+ float ratioW = (float)(w / originW);
+ float ratioH = (float)(h / originH);
+
+ removeView();//view will add in message show content handler
+
+ // update image subtitle size
+ mWindowLayoutParams.x = x;
+ mWindowLayoutParams.y = y;
+ mWindowLayoutParams.width = w;
+ mWindowLayoutParams.height = h;
+ LOGI("[setSurfaceViewParam]x:" + mWindowLayoutParams.x + ",y:" + mWindowLayoutParams.y + ",width:" + mWindowLayoutParams.width + ",height:" + mWindowLayoutParams.height);
+ setImgSubRatio(ratioW, ratioH, w, h);
+
+ // update text subtitle size
+ setTextSize((int)(mOriginTextSize * ratioW));// take ratioW as ratio for text size
+ LOGI("[setSurfaceViewParam]ratioW:" + ratioW + ",ratioH:" + ratioH);
+ }
+
private void init() {
//init view
mSubView = LayoutInflater.from(mContext).inflate(R.layout.subtitleview, null);
subTitleView = (SubtitleView) mSubView.findViewById(R.id.subtitle);
subTitleView.clear();
subTitleView.setTextColor(Color.WHITE);
- subTitleView.setTextSize(20);
+ subTitleView.setTextSize(mOriginTextSize);
subTitleView.setTextStyle(Typeface.NORMAL);
subTitleView.setViewStatus(true);
@@ -148,7 +176,6 @@ public class SubTitleService extends ISubTitleService.Stub {
mSubtitleUtils = new SubtitleUtils(path);
mSubTotal = mSubtitleUtils.getSubTotal();
mCurSubId = mSubtitleUtils.getCurrentInSubtitleIndexByJni(); //get inner subtitle current index as default, 0 is always, if there is no inner subtitle, 0 indicate the first external subtitle
- LOGI("[open] mCurSubId: " + mCurSubId);
sendOpenMsg(mCurSubId);
//load("http://milleni.ercdn.net/9_test/double_lang_test.xml"); for test
@@ -408,7 +435,7 @@ public class SubTitleService extends ISubTitleService.Stub {
}
private void sendResetForSeekMsg() {
- Message msg = mHandler.obtainMessage (RESET_FOR_SEEK);
+ Message msg = mHandler.obtainMessage(RESET_FOR_SEEK);
mHandler.sendMessage(msg);
}