package net.osdn.gokigen.gr2control.camera;
-import android.app.Activity;
+
import android.content.SharedPreferences;
import net.osdn.gokigen.gr2control.camera.fuji_x.IFujiXInterfaceProvider;
import net.osdn.gokigen.gr2control.preference.IPreferencePropertyAccessor;
import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceManager;
/**
private final OlympusInterfaceProvider olympus;
private final RicohGr2InterfaceProvider ricohGr2;
private final FujiXInterfaceProvider fujiX;
- private final Activity context;
+ private final FragmentActivity context;
private ICameraConnection.CameraConnectionMethod connectionMethod = ICameraConnection.CameraConnectionMethod.UNKNOWN;
- public static IInterfaceProvider newInstance(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
+ public static IInterfaceProvider newInstance(@NonNull FragmentActivity context, @NonNull ICameraStatusReceiver provider)
{
return (new CameraInterfaceProvider(context, provider));
}
*
*
*/
- private CameraInterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
+ private CameraInterfaceProvider(@NonNull FragmentActivity context, @NonNull ICameraStatusReceiver provider)
{
this.context = context;
olympus = new OlympusInterfaceProvider(context, provider);
package net.osdn.gokigen.gr2control.camera.fuji_x.wrapper;
-import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
import net.osdn.gokigen.gr2control.camera.ICameraButtonControl;
import net.osdn.gokigen.gr2control.camera.ICameraConnection;
private static final int CONTROL_PORT = 55740;
private static final String CAMERA_IP = "192.168.0.1";
- private final Activity activity;
+ private final FragmentActivity activity;
private final FujiXCommandPublisher commandPublisher;
private final FujiXLiveViewControl liveViewControl;
private final FujiXAsyncResponseReceiver asyncReceiver;
*
*
*/
- public FujiXInterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
+ public FujiXInterfaceProvider(@NonNull FragmentActivity context, @NonNull ICameraStatusReceiver provider)
{
this.activity = context;
this.commandPublisher = new FujiXCommandPublisher(CAMERA_IP, CONTROL_PORT);
package net.osdn.gokigen.gr2control.camera.fuji_x.wrapper;
-import android.app.Activity;
import android.content.SharedPreferences;
import android.util.Log;
import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceManager;
import net.osdn.gokigen.gr2control.camera.ICameraStatus;
private boolean logcat = false;
- FujiXStatusChecker(@NonNull Activity activity, @NonNull IFujiXCommandPublisher issuer)
+ FujiXStatusChecker(@NonNull FragmentActivity activity, @NonNull IFujiXCommandPublisher issuer)
{
this.issuer = issuer;
- this.statusHolder = new FujiXStatusHolder(issuer);
+ this.statusHolder = new FujiXStatusHolder(activity, issuer);
try
{
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.collection.SparseArrayCompat;
+import androidx.fragment.app.FragmentActivity;
+import net.osdn.gokigen.gr2control.R;
import net.osdn.gokigen.gr2control.camera.ICameraStatus;
import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.FujiXReplyMessageReceiver;
import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandPublisher;
class FujiXStatusHolder
{
private final String TAG = toString();
+ private final FragmentActivity activity;
private final IFujiXCommandPublisher publisher;
private static final boolean logcat = true;
private SparseIntArray statusHolder;
private SparseArrayCompat<String> statusNameArray;
- FujiXStatusHolder(@NonNull IFujiXCommandPublisher publisher)
+ FujiXStatusHolder(@NonNull FragmentActivity activity, @NonNull IFujiXCommandPublisher publisher)
{
statusHolder = new SparseIntArray();
statusHolder.clear();
+ this.activity = activity;
this.publisher = publisher;
statusNameArray = new SparseArrayCompat<>();
prepareStatusNameArray();
// アイテム名の一覧を応答する
return (getAvailableStatusNameList());
}
-
if (listKey.matches(ICameraStatus.EFFECT))
{
return (getAvailableEffectItemList());
}
+ if (listKey.matches(ICameraStatus.AE))
+ {
+ return (new ArrayList<>());
+ }
+ if (listKey.matches(ICameraStatus.WHITE_BALANCE))
+ {
+ return (getAvailableWhiteBalanceItemList());
+ }
+ if (listKey.matches(ICameraStatus.ISO_SENSITIVITY))
+ {
+ return (getAvailableIsoSensitivityItemList());
+ }
+
///// 選択可能なステータスの一覧を取得する : でも以下はアイテム名の一覧... /////
+ /*
ArrayList<String> selection = new ArrayList<>();
try
{
{
e.printStackTrace();
}
- return (selection);
+ */
+ return (new ArrayList<>());
}
private List<String> getAvailableEffectItemList()
return(selection);
}
+ private List<String> getAvailableWhiteBalanceItemList()
+ {
+ // WHITE BALANCEの選択肢をリストにして返す
+ ArrayList<String> selection = new ArrayList<>();
+
+ String[] items = activity.getResources().getStringArray(R.array.fuji_x_white_balance);
+ for (String item : items)
+ {
+ selection.add(item);
+ }
+ return (selection);
+ }
+
+ private List<String> getAvailableIsoSensitivityItemList()
+ {
+ // ISO感度設定の選択肢をリストにして返す
+ ArrayList<String> selection = new ArrayList<>();
+ return (selection);
+ }
+
+
private String getCurrentEffectStatus()
{
// EFFECTの現在状態を応答する : FILM Simulationにした
return ("");
}
+ private String getCurrentWhiteBalanceStatus()
+ {
+ // White Balanceの現在状態を取得する
+ try
+ {
+ int value = statusHolder.get(IFujiXCameraProperties.WHITE_BALANCE);
+ String[] items = activity.getResources().getStringArray(R.array.fuji_x_white_balance);
+ String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_white_balance_value);
+ int index = 0;
+ for (String itemValue : itemValues)
+ {
+ int itemValueInt = Integer.parseInt(itemValue);
+ if (itemValueInt == value)
+ {
+ return (items[index]);
+ }
+ index++;
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return ("");
+ }
+
+ private String getCurrentIsoSensitivityStatus()
+ {
+ // ISO感度設定の現在状態を取得する
+ String isoValue = "";
+ try
+ {
+ int value = statusHolder.get(IFujiXCameraProperties.ISO);
+ int iso = ((0x0000ffff & value));
+ int auto = ((0xffff0000 & value));
+ if (auto != 0)
+ {
+ isoValue = "A (" + iso + ")";
+ }
+ else
+ {
+ isoValue = "" + iso;
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return (isoValue);
+ }
+
private void setEffectItem(String value)
{
try
}
}
+ private void setCurrentWhiteBalanceStatus(String value)
+ {
+ try
+ {
+ String[] items = activity.getResources().getStringArray(R.array.fuji_x_white_balance);
+ String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_white_balance_value);
+ int index = 0;
+ for (String item : items)
+ {
+ if (item.matches(value))
+ {
+ // 見つかった! この値を設定する
+ String itemValue = itemValues[index];
+ int itemValueInt = Integer.parseInt(itemValue);
+ publisher.enqueueCommand(new SetPropertyValue(new FujiXReplyMessageReceiver(" Set White Balance", true), IFujiXCameraProperties.WHITE_BALANCE, 4, itemValueInt));
+ return;
+ }
+ index++;
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ private void setCurrentIsoSensitivityStatus(String value)
+ {
+ // ISO感度を設定する
+
+
+ }
String getItemStatus(String key)
{
{
return (getCurrentEffectStatus());
}
+ if (key.matches(ICameraStatus.WHITE_BALANCE))
+ {
+ return (getCurrentWhiteBalanceStatus());
+ }
+ if (key.matches(ICameraStatus.ISO_SENSITIVITY))
+ {
+ return (getCurrentIsoSensitivityStatus());
+ }
+ if (key.matches(ICameraStatus.TAKE_MODE))
+ {
+ return ("");
+ }
try
{
int strIndex = key.indexOf("x");
{
Log.v(TAG, "setStatus(" + key + ", " + value + ")");
}
-
if (key.matches(ICameraStatus.EFFECT))
{
setEffectItem(value);
return;
}
+ if (key.matches(ICameraStatus.WHITE_BALANCE))
+ {
+ setCurrentWhiteBalanceStatus(value);
+ return;
+ }
+ if (key.matches(ICameraStatus.ISO_SENSITIVITY))
+ {
+ setCurrentIsoSensitivityStatus(value);
+ // return;
+ }
// ここで設定を行う。
}
int FOCUS_POINT = 0x9026;
int FOCUS_UNLOCK = 0x9027;
int CAMERA_CAPABILITIES = 0x902b;
+*/
int SHUTTER_SPEED = 0x902c;
int APERTURE = 0x902d;
int EXPREV = 0x902e;
-*/
String STOP_STR = "STOP";
String IMAGE_INFO_STR = "IMAGE_INFO";
{
fujiXOnKeyPanelClickListener = new LiveViewFujiXKeyPanelClickListener(interfaceProvider, vibrator);
}
- //setFujiXKeyPanelClickListener(view, xxx);
-
+ setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_minus);
+ setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_plus);
+ setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_tv_minus);
+ setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_tv_plus);
+ setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_minus);
+ setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_plus);
connectStatus = view.findViewById(R.id.connect_disconnect_button);
if (connectStatus != null)
package net.osdn.gokigen.gr2control.liveview;
import android.os.Vibrator;
+import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import net.osdn.gokigen.gr2control.R;
import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
+import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandCallback;
+import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandPublisher;
+import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.CommandGeneric;
+import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.IFujiXCameraCommands;
+import net.osdn.gokigen.gr2control.camera.utils.SimpleLogDumper;
-public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener, View.OnLongClickListener
+public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener, View.OnLongClickListener, IFujiXCommandCallback
{
private final String TAG = toString();
+ private static final boolean isDumpLog = false;
private final IInterfaceProvider interfaceProvider;
private final Vibrator vibrator;
this.vibrator = vibrator;
}
-
@Override
public void onClick(View v)
{
-
+ boolean isVibrate = true;
+ try
+ {
+ int id = v.getId();
+ switch (id)
+ {
+ case R.id.button_fuji_x_sv_minus:
+ updateValue(IFujiXCameraCommands.SHUTTER_SPEED, 0);
+ break;
+ case R.id.button_fuji_x_sv_plus:
+ updateValue(IFujiXCameraCommands.SHUTTER_SPEED, 1);
+ break;
+ case R.id.button_fuji_x_tv_minus:
+ updateValue(IFujiXCameraCommands.APERTURE, 0);
+ break;
+ case R.id.button_fuji_x_tv_plus:
+ updateValue(IFujiXCameraCommands.APERTURE, 1);
+ break;
+ case R.id.button_fuji_x_xv_minus:
+ updateValue(IFujiXCameraCommands.EXPREV, 0);
+ break;
+ case R.id.button_fuji_x_xv_plus:
+ updateValue(IFujiXCameraCommands.EXPREV, 1);
+ break;
+ default:
+ isVibrate = false;
+ break;
+ }
+ vibrate(isVibrate);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
@Override
public boolean onLongClick(View v)
{
+ boolean isVibrate = false;
+ boolean ret = false;
+ try
+ {
+ int id = v.getId();
+ switch (id)
+ {
+ case R.id.button_fuji_x_sv_minus:
+ break;
+ case R.id.button_fuji_x_sv_plus:
+ break;
+ case R.id.button_fuji_x_tv_minus:
+ break;
+ case R.id.button_fuji_x_tv_plus:
+ break;
+ case R.id.button_fuji_x_xv_minus:
+ break;
+ case R.id.button_fuji_x_xv_plus:
+ break;
+ default:
+ break;
+ }
+ vibrate(isVibrate);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return (ret);
+ }
+
+ /**
+ * 値を更新する
+ *
+ */
+ private void updateValue(int id, int value)
+ {
+ try
+ {
+ IFujiXCommandPublisher publisher = interfaceProvider.getFujiXInterfaceProvider().getCommandPublisher();
+ publisher.enqueueCommand(new CommandGeneric(this, id, 4, value));
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * ぶるぶるさせる
+ *
+ */
+ private void vibrate(boolean isVibrate)
+ {
+ if ((vibrator != null)&&(isVibrate))
+ {
+ vibrator.vibrate(30);
+ }
+ }
+
+ @Override
+ public void receivedMessage(int id, byte[] rx_body)
+ {
+ if (isDumpLog)
+ {
+ SimpleLogDumper.dump_bytes("" + id, rx_body);
+ }
+ }
+
+ @Override
+ public void onReceiveProgress(int currentBytes, int totalBytes, byte[] rx_body)
+ {
+ Log.v(TAG, " onReceiveProgress() : " + currentBytes + "/" + totalBytes);
+ }
+
+ @Override
+ public boolean isReceiveMulti()
+ {
return (false);
}
}
--- /dev/null
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M14,5c0,-1.1 -0.9,-2 -2,-2h-1L11,2c0,-0.55 -0.45,-1 -1,-1L6,1c-0.55,0 -1,0.45 -1,1v1L4,3c-1.1,0 -2,0.9 -2,2v15c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2h8L22,5h-8zM12,18h-2v-2h2v2zM12,9h-2L10,7h2v2zM16,18h-2v-2h2v2zM16,9h-2L14,7h2v2zM20,18h-2v-2h2v2zM20,9h-2L18,7h2v2z"/>
+</vector>
--- /dev/null
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M15,17v2h2v-2h2v-2h-2v-2h-2v2h-2v2h2zM20,2L4,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM5,5h6v2L5,7L5,5zM20,20L4,20L20,4v16z"/>
+</vector>
--- /dev/null
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM5.5,7.5h2v-2L9,5.5v2h2L11,9L9,9v2L7.5,11L7.5,9h-2L5.5,7.5zM19,19L5,19L19,5v14zM17,17v-1.5h-5L12,17h5z"/>
+</vector>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="HardcodedText,ContentDescription" >
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:background="@color/background_translucent_white" >
+ <ImageView
+ android:id="@+id/button_fuji_x_sv_minus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_remove_circle_outline_black_24dp"
+ android:layout_marginTop="8pt"
+ android:layout_marginLeft="6pt"
+ android:layout_marginStart="6pt"
+ android:gravity="center" />
+
+ <TextView
+ android:id="@+id/label_fuji_x_sv_center"
+ android:layout_width="34pt"
+ android:layout_height="14pt"
+ android:layout_toEndOf="@id/button_fuji_x_sv_minus"
+ android:layout_toRightOf="@id/button_fuji_x_sv_minus"
+ android:layout_alignTop="@id/button_fuji_x_sv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:text="@string/shutter_speed"
+ android:textColor="@color/colorBlack"
+ android:textStyle="bold"
+ android:textSize="8pt"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_sv_plus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignTop="@id/button_fuji_x_sv_minus"
+ android:layout_toEndOf="@id/label_fuji_x_sv_center"
+ android:layout_toRightOf="@id/label_fuji_x_sv_center"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_add_circle_outline_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_tv_minus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_below="@id/button_fuji_x_sv_minus"
+ android:layout_alignLeft="@id/button_fuji_x_sv_minus"
+ android:layout_alignStart="@id/button_fuji_x_sv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_remove_circle_outline_black_24dp"
+ android:layout_marginTop="6pt"
+ android:gravity="center" />
+
+ <TextView
+ android:id="@+id/label_fuji_x_tv_center"
+ android:layout_width="34pt"
+ android:layout_height="14pt"
+ android:layout_toEndOf="@id/button_fuji_x_tv_minus"
+ android:layout_toRightOf="@id/button_fuji_x_tv_minus"
+ android:layout_alignTop="@id/button_fuji_x_tv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:text="@string/aperture"
+ android:textColor="@color/colorBlack"
+ android:textStyle="bold"
+ android:textSize="8pt"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_tv_plus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignTop="@id/button_fuji_x_tv_minus"
+ android:layout_toEndOf="@id/label_fuji_x_tv_center"
+ android:layout_toRightOf="@id/label_fuji_x_tv_center"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_add_circle_outline_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_xv_minus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_below="@id/button_fuji_x_tv_minus"
+ android:layout_alignLeft="@id/button_fuji_x_tv_minus"
+ android:layout_alignStart="@id/button_fuji_x_tv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_remove_circle_outline_black_24dp"
+ android:layout_marginTop="6pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/label_fuji_x_xv_center"
+ android:layout_width="34pt"
+ android:layout_height="14pt"
+ android:layout_toEndOf="@id/button_fuji_x_xv_minus"
+ android:layout_toRightOf="@id/button_fuji_x_xv_minus"
+ android:layout_alignTop="@id/button_fuji_x_xv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_exposure_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_xv_plus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignTop="@id/button_fuji_x_xv_minus"
+ android:layout_toEndOf="@id/label_fuji_x_xv_center"
+ android:layout_toRightOf="@id/label_fuji_x_xv_center"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_add_circle_outline_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
<TextView
android:id="@+id/fuji_x_hideKeyPanelTextView"
android:layout_width="48dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="HardcodedText,ContentDescription" >
+
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:background="@color/background_translucent_white" >
+ <ImageView
+ android:id="@+id/button_fuji_x_sv_minus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_remove_circle_outline_black_24dp"
+ android:layout_marginTop="8pt"
+ android:layout_marginLeft="6pt"
+ android:layout_marginStart="6pt"
+ android:gravity="center" />
+
+ <TextView
+ android:id="@+id/label_fuji_x_sv_center"
+ android:layout_width="34pt"
+ android:layout_height="14pt"
+ android:layout_toEndOf="@id/button_fuji_x_sv_minus"
+ android:layout_toRightOf="@id/button_fuji_x_sv_minus"
+ android:layout_alignTop="@id/button_fuji_x_sv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:text="@string/shutter_speed"
+ android:textColor="@color/colorBlack"
+ android:textStyle="bold"
+ android:textSize="8pt"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_sv_plus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignTop="@id/button_fuji_x_sv_minus"
+ android:layout_toEndOf="@id/label_fuji_x_sv_center"
+ android:layout_toRightOf="@id/label_fuji_x_sv_center"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_add_circle_outline_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_tv_minus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_below="@id/button_fuji_x_sv_minus"
+ android:layout_alignLeft="@id/button_fuji_x_sv_minus"
+ android:layout_alignStart="@id/button_fuji_x_sv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_remove_circle_outline_black_24dp"
+ android:layout_marginTop="6pt"
+ android:gravity="center" />
+
+ <TextView
+ android:id="@+id/label_fuji_x_tv_center"
+ android:layout_width="34pt"
+ android:layout_height="14pt"
+ android:layout_toEndOf="@id/button_fuji_x_tv_minus"
+ android:layout_toRightOf="@id/button_fuji_x_tv_minus"
+ android:layout_alignTop="@id/button_fuji_x_tv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:text="@string/aperture"
+ android:textColor="@color/colorBlack"
+ android:textStyle="bold"
+ android:textSize="8pt"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_tv_plus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignTop="@id/button_fuji_x_tv_minus"
+ android:layout_toEndOf="@id/label_fuji_x_tv_center"
+ android:layout_toRightOf="@id/label_fuji_x_tv_center"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_add_circle_outline_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_xv_minus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_below="@id/button_fuji_x_tv_minus"
+ android:layout_alignLeft="@id/button_fuji_x_tv_minus"
+ android:layout_alignStart="@id/button_fuji_x_tv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_remove_circle_outline_black_24dp"
+ android:layout_marginTop="6pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/label_fuji_x_xv_center"
+ android:layout_width="34pt"
+ android:layout_height="14pt"
+ android:layout_toEndOf="@id/button_fuji_x_xv_minus"
+ android:layout_toRightOf="@id/button_fuji_x_xv_minus"
+ android:layout_alignTop="@id/button_fuji_x_xv_minus"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_exposure_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
+
+ <ImageView
+ android:id="@+id/button_fuji_x_xv_plus"
+ android:layout_width="20pt"
+ android:layout_height="14pt"
+ android:layout_alignTop="@id/button_fuji_x_xv_minus"
+ android:layout_toEndOf="@id/label_fuji_x_xv_center"
+ android:layout_toRightOf="@id/label_fuji_x_xv_center"
+ android:scaleType="fitCenter"
+ android:visibility="visible"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/ic_add_circle_outline_black_24dp"
+ android:layout_marginLeft="2pt"
+ android:layout_marginStart="2pt"
+ android:gravity="center" />
<TextView
android:id="@+id/fuji_x_hideKeyPanelTextView"
<string name="dialog_title_message_body">メッセージボディ</string>
<string name="dialog_command_hint">(command)</string>
<string name="dialog_service_hint">(service)</string>
+
+ <string name="shutter_speed">Shutter</string>
+ <string name="aperture">Aperture</string>
+
</resources>
<string name="dialog_command_hint">(command)</string>
<string name="dialog_service_hint">(service)</string>
+ <string name="shutter_speed">Shutter</string>
+ <string name="aperture">Aperture</string>
</resources>