author | Xiaoliang 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) |
commit | 88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06 (patch) | |
tree | 6cdc3d66307c95d78beee2f98e81bf28d6b91720 | |
parent | 77bfd2fb2d797e7aee2c580f08d4111780a6478d (diff) | |
download | SubTitle-88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06.zip SubTitle-88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06.tar.gz SubTitle-88780c448b0f7b7f58aae6d54a7b5aa32c8d2a06.tar.bz2 |
PD #122915: add set surface view param for subtitle scale
Change-Id: Ib8553b3a7da564d82c76165502ee0b9c39ebe83e
-rw-r--r--[-rwxr-xr-x] | src/com/droidlogic/SubTitleService/ISubTitleService.aidl | 1 | ||||
-rw-r--r-- | src/com/droidlogic/SubTitleService/SubTitleService.java | 33 |
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); } |