Эй, ребята! Итак, у меня есть этот учебник, и он вызвал несколько вопросов.
Titanium-AndroidStudio
Короче говоря, он показывает, как открыть библиотеки Appcelerator в Android Studio и использовать его для разработки модулей.
То, что мне нужно, это как бы наоборот.
У меня есть проект AndroidStudio, который мне нужно «преобразовать» в модуль Appcelerator Titanium. Код Java не является проблемой, поскольку Java это Java. Но нужно учесть много вещей. Android Studio использует собственную реализацию экрана / кнопок / представлений, а модуль Appcelerator является чистым java, созданным в Eclipse, а экран, представления, кнопки и т.д. c создаются с использованием Javascript внутри Titanium. framework.
Приведу пример.
Это фрагмент из Android Studio.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestPermissions();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_tire_scan);
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);
}
btnAccept = findViewById(R.id.btnAccept);
mOpenCvCameraView = findViewById(R.id.java_camera_View);
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
}
Итак, у нас есть код Java которые делают некоторые вещи, и у нас также есть поведение самого приложения, связанное с кодом Java, например вид камеры и кнопка.
Как удалить "визуальный" код из этого фрагмента, и свяжите его с кодом Appcelerator Javascript.
Эта кнопка, например, должна быть встроена в appcelerator, например:
var VBtn = Ti.UI.createButton({
title: 'CameraButton',
bottom: 50,
});
Я не знаю, ясно об этом, но, я надеюсь, вы меня понимаете.
В основном, как перенести проект из Android Studio в модуль Appcelerator и использовать его внутри самого Titanium.
Заранее спасибо.
ОБНОВЛЕНИЕ:
Это то, что у меня есть.
Классы ViewProxy и View.
@Kroll.proxy(creatableInModule = ItiremoduleModule.class)
public class ItireViewProxy extends TiViewProxy
{
public ItireViewProxy()
{
super();
}
PortraitCameraBridgeViewBase mOpenCvCameraView;
AppCompatActivity appCom;
protected class ItireView extends TiUIView
{
public ItireView(TiViewProxy proxy) {
super(proxy);
String packageName = proxy.getActivity().getPackageName();
Resources resources = proxy.getActivity().getResources();
View viewWrapper;
int java_camera_View = resources.getIdentifier("java_camera_View", "id", packageName);
LayoutInflater inflater = LayoutInflater.from(proxy.getActivity());
viewWrapper = inflater.inflate(java_camera_View, null);
setNativeView(viewWrapper);
}
}
@Override
public TiUIView createView(Activity activity) {
TiUIView view = new ItireView(this);
view.getLayoutParams().autoFillsHeight = true;
view.getLayoutParams().autoFillsWidth = true;
return view;
}
@Kroll.method
public void setView() {
// must use this method to set the view on Appcelerator, right?
}
}
Файл xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:itiremodule="http://schemas.android.com/apk/lib/com.itire.budini"
xmlns:opencv="http://schemas.android.com/apk/lib/com.itire.budini"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.itire.budini.ItireViewProxy">
<com.example.etech.opencvtest320.PortraitCameraView
android:id="@+id/java_camera_View"
android:layout_width="379dp"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:visibility="visible"
opencv:camera_id="any"
opencv:show_fps="true" />
<Button
android:id="@+id/btnAccept"
style="?android:attr/borderlessButtonStyle"
android:layout_width="375dp"
android:layout_height="76dp"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="32dp"
android:background="@android:color/darker_gray"
android:onClick="scanAgain"
android:text="Scanning iTread..."
android:textAllCaps="false"
android:textColor="#1F2025"
android:textSize="18sp"
android:visibility="visible" />