Commit 90cadb02 by Jeong Gilmo

#33721 手書きパレット機能の追加

- 課題表のNo.37
フォーム・作業を新規で作成しても切れた状態で表示される。
端末情報:HUAWEI P10 lite
について修正
- 画面回転の条件を追加
parent 3ebbc35a
...@@ -1367,7 +1367,9 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1367,7 +1367,9 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
} }
if(FileUtil.exists(tempImagePath)){ //Tempパスにファイルがある場合、編集を実行 if(FileUtil.exists(tempImagePath)){ //Tempパスにファイルがある場合、編集を実行
//編集画面をコール //編集画面をコール
if(isRotatable()) {
setFixedOrientation(true); //回転固定 setFixedOrientation(true); //回転固定
}
PhotoEditActivity dialog = new PhotoEditActivity(ABVContentViewActivity.this, tempImagePath); //ロードして編集するイメージのパスを設定 PhotoEditActivity dialog = new PhotoEditActivity(ABVContentViewActivity.this, tempImagePath); //ロードして編集するイメージのパスを設定
showPhotoEditDialog(dialog); showPhotoEditDialog(dialog);
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
...@@ -1377,8 +1379,10 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1377,8 +1379,10 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
webViewLoadUrl(String.format("javascript:document.getElementById('reportForm').contentWindow.changeThumbnailTagForAnd('%s','%s')", attachedFilename, tempImagePath)); webViewLoadUrl(String.format("javascript:document.getElementById('reportForm').contentWindow.changeThumbnailTagForAnd('%s','%s')", attachedFilename, tempImagePath));
afterABookCheckApi(cmd, taskKey, 0, "", null); afterABookCheckApi(cmd, taskKey, 0, "", null);
mPhotoEditDialog = null; mPhotoEditDialog = null;
if(isRotatable()) {
setFixedOrientation(false); ////回転可能 setFixedOrientation(false); ////回転可能
} }
}
}); });
} }
else{ else{
......
...@@ -120,7 +120,6 @@ public class ParentWebViewActivity extends ABVContentViewActivity { ...@@ -120,7 +120,6 @@ public class ParentWebViewActivity extends ABVContentViewActivity {
mLocalFile = null; mLocalFile = null;
//編集可能可否をチェックする。 //編集可能可否をチェックする。
if (mEnablePhotoEdit.equals("1")) { //編集の場合、編集画面を開ける。 if (mEnablePhotoEdit.equals("1")) { //編集の場合、編集画面を開ける。
setFixedOrientation(true);
commonOpenEditPage(); commonOpenEditPage();
} }
} catch (Exception e) { } catch (Exception e) {
......
...@@ -37,11 +37,10 @@ public class PhotoEditActivity extends Dialog { ...@@ -37,11 +37,10 @@ public class PhotoEditActivity extends Dialog {
private final String TAG = "PhotoEditActivity"; private final String TAG = "PhotoEditActivity";
private final String editToolPath = "file:///android_asset/Drawing/index.html"; //EditToolのパス。 private final String editToolPath = "file:///android_asset/Drawing/index.html"; //EditToolのパス。
private final String editToolName = "Drawing"; //EditToolの名 private final String editToolName = "Drawing"; //EditToolの名
private final float screenToDialogRatio = 0.8f; // 編集画面のタイアローグに表示するイメージの比率
private WebView editPageWebView; //ダイアローグの上に編集画面をロード private WebView editPageWebView; //ダイアローグの上に編集画面をロード
private Bitmap bitmapOfPhoto; //写真のBitmap情報 private Bitmap bitmapOfPhoto; //写真のBitmap情報
private int photoWidth; private float photoWidth;
private int photoHeight; private float photoHeight;
private String photoFilePath; //ロードして修正するファイルのパス private String photoFilePath; //ロードして修正するファイルのパス
private JsInf jsInf = new JsInf(); //Javascript Interface private JsInf jsInf = new JsInf(); //Javascript Interface
private Context context; private Context context;
...@@ -79,29 +78,21 @@ public class PhotoEditActivity extends Dialog { ...@@ -79,29 +78,21 @@ public class PhotoEditActivity extends Dialog {
Rect displayRectangle = new Rect(); Rect displayRectangle = new Rect();
Window window = ((Activity) context).getWindow(); Window window = ((Activity) context).getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle); window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
float photoRatio = photoWidth / photoHeight; //画面の横と縦の割合
float displayHeight = (float) displayRectangle.height(); //画面の縦幅
float displayWidth = (float) displayRectangle.width(); //画面の横幅
int dialogWidth = (int) (displayHeight * photoRatio); //ダイアローグの横幅を縦幅について計算
if(photoRatio > 1){ dialogWidth = (int) (dialogWidth * 0.75f); } //横の写真はダイアローグの横幅を75パーセントに計算
else{ dialogWidth = (int) (dialogWidth * 0.9f); } //縦の写真はダイアローグの横幅を90パーセントに計算
if(getWindow() != null) { if(getWindow() != null) {
//画面の方向によってダイアローグのサイズを決定 if (dialogWidth < displayWidth) {
int screenOrientation = context.getResources().getConfiguration().orientation; //画面の方向 //計算した横幅が画面より小さい場合はそのまま設定
switch (screenOrientation) { getWindow().setLayout(dialogWidth, ViewGroup.LayoutParams.WRAP_CONTENT);
case Surface.ROTATION_0: } else {
case Surface.ROTATION_180: //横 //計算した横幅が画面より大き場合は画面の横幅に反映
float photoRatio = (float) photoWidth / (float) photoHeight; //画面の横と縦の割合
float displayHeight = (float) displayRectangle.height() * screenToDialogRatio; //画面の縦幅の90パーセント
float displayWidth = (float) displayRectangle.width() * screenToDialogRatio; //画面の横幅の90パーセント
int dialogWidth = (int) (displayHeight * photoRatio); //ダイアローグの横幅を計算
if (dialogWidth < displayWidth) { //計算した横幅が画面より小さい場合はそのまま設定
getWindow().setLayout(dialogWidth, ViewGroup.LayoutParams.WRAP_CONTENT);//ViewGroup.LayoutParams.WRAP_CONTENT);
} else { //計算した横幅が画面より大き場合は画面の横幅に設定
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
break;
case Surface.ROTATION_90:
case Surface.ROTATION_270: //縦
//画面方向が縦の場合、画面の横幅に設定
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
break;
} }
} }
...@@ -138,7 +129,7 @@ public class PhotoEditActivity extends Dialog { ...@@ -138,7 +129,7 @@ public class PhotoEditActivity extends Dialog {
if (url.contains(editToolName)) { if (url.contains(editToolName)) {
//最初ページロードの場合 //最初ページロードの場合
//ページロードの終了後のCanvas設定 //ページロードの終了後のCanvas設定
float photoRatio = (float) photoHeight / (float) photoWidth; //写真の割合を計算 float photoRatio = photoHeight / photoWidth; //写真の割合を計算
view.loadUrl(String.format("javascript:resizeCanvasToRatio(%f);", photoRatio)); //写真の割合によってCanvasのサイズを決める。 view.loadUrl(String.format("javascript:resizeCanvasToRatio(%f);", photoRatio)); //写真の割合によってCanvasのサイズを決める。
view.loadUrl(String.format("javascript:setBackground('%s');", photoFilePath)); //Canvasの背景をイメージにする view.loadUrl(String.format("javascript:setBackground('%s');", photoFilePath)); //Canvasの背景をイメージにする
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment