問題タブ [surfaceholder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - No empty constructor error, SurfaceHolder.callback
I am trying to display the camera view using a class extends surfaceview
and implements surfaceholder.callback
. in my main activity ViewActivity
, as shown below, i instantiate an object from the SurfaceHolderActivity
and set it as a view using setContentView(myCameraSurfaceHolder);
. while running the app on the device, it crashes and logcat gives an error sayin no empty constructor
. please help me to find the error.
ViewActivity:
SurfaceHolderActivity:
logcat:
android - カメラのパラメータを設定できません
以下に示すように およびsetSceneMode
に関するカメラ パラメーターを設定すると logact がエラーを生成する理由はわかりませんが
、前述のメソッドをおよび にそれぞれ設定すると動作しますsetColorEffect
set parameters failed
SCENE_MODE_CANDLELIGHT
EFFECT_SOLARIZE
Java コード:
java - onSensorChanged 内の addContentView がエラーを生成する
ビューをMyCompassView
拡張するクラスがあり、コンパスを描画します。SurfaceHolder
アクティビティはサーフェス ホルダーでカメラを開き、最後に前述のクラスでオーバーレイする必要があります。アクティビティを上MainActivity
にオーバーレイする方法は次のとおりです。SurfaceHolder
MainActivity
myCameraSurfaceHolder = new SurfaceHolderActivity(this);
setContentView(myCameraSurfaceHolder);
それは機能し、カメラは表面ホルダーで正常に機能します。
MainActivity
問題は、 の表面にのビューを重ねようとしたときですMyCompassView
。それを達成するために、私は以下を使用しました:
loiViewInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
loiViewInflater = LayoutInflater.from(getApplicationContext());
compassOverLayView = loiViewInflater.inflate(R.layout.activity_viewactivity, null);
addContentView(compassOverLayView,new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
しかし、センサーからのすべての読み取りで、方位角の値に基づいて異なるポインターの向きでコンパスを描画したいため、センサーリスナーのaddContentView(....)
内に配置されます。onSensorChanged
そして、logcat は不平を言い、以下のメッセージを生成します。エラーを修正するのを手伝ってください。
Logcat_OutPut:
android.support.v7.app.ActionBarActivity.superAddContentView(ActionBarActivity.java:228)
android - センサー リスナー内からビューを拡張するクラスのメソッドにアクセスすると、Null ポインタ例外が発生する
ビューを拡張するクラスにセンサーの読み取り値を渡したいのですが、MyCompassView
渡されるセンサーからの読み取り値に基づいて、ポインターの向きが変わります。実際、これはすべて正常に動作します。テストしました。しかし、サーフェス上でカメラ プレビューを開くサーフェス ビューに実装しようとしたときと同じ概念が機能せず、アプリがクラッシュします。簡単に言えば、SurfaceViewHolder
カメラのプレビューを保持するMyCompassView
クラス、上記のクラス、およびその表面とその表面MainActivity
の両方のビューを持つ必要があるクラスがあります。これらのビューをオーバーレイするために使用した方法は、以下に投稿されているとおりです。logcate に「Null Pointer Exception」と表示される原因の内部にあるメソッドを見つけるのを手伝ってください。MyCompassView
SurfaceHolder
MainActivity
myCompassView.update(azimuth);
onSensorChanged
更新:
myCompassView.update(azimuth);
アプリ を省略すると動作しますが、MyCompassView
クラス内の図面は静的であり、方向を示してい
ません。もちろん、myCompassView.update(azimuth);
アクティブ化されていないため
です。100行目は myCompassView.update(azimuth);
MainActivity.java
Activity_ViewActivity.xml:
ログキャット:
android - Android SurfaceView が以前に描画されたオブジェクトを保持しない
SurfaceView を試しています。私の要件は、最初にノード(シンプルなドローアブル)を単純にレンダリングすることです。その後、後でさらにノードをレンダリングします。
私のスレッドの run メソッドと doDraw メソッドのスニペットを以下に示します。両方を保持しながら、後続のパスで 2 つの異なるドローアブルをレンダリングしようとしています。問題は、最初のパスで書き込まれたものをすべて消去することです (コードのコメントを参照)。以前に描画されたオブジェクトを保持する方法は?
更新 1: まだ機能していないようです。実行コードを次のように変更しました。
後で、ダーティな四角形に 0,0,1,1 を渡そうとしました。まだ動作させることができませんでした...
android - SurfaceHolder : IllegalStateException - サーフェスがロックされていませんでした
プログラムでエラーが発生します。エラーは、描画シーケンスの最後にサーフェスをロック解除しようとすると、サーフェスがロックされていないことを示しているようです。しかし、以下のコードに示すように。最初に表面をロックします。なぜこのエラーが発生するのですか。私が間違っているのは何ですか?
エラーが発生しているメソッド:
エラー行 ' **this.holder.unlockCanvasAndPost(canvas);**
'
ログキャット:
java - Fragment を CameraPreview インスタンス「SurfaceHolder」でオーバーレイする方法
以下のコードに示すようにcameraPreview
、クラス extends に追加したいのですfragment
が、そのレイアウトには<surfaceView>
. を実装するクラスを作成しました。そのインスタンスを、拡張するクラスのレイアウト内のタグであるsurfaceHolder.callback
に追加したいと考えています。surfaceview
fragment
surfaceholder.callback
1)実装するクラスのオブジェクトを設定してカメラプレビューを表示することはできますsurfaceview
か? または、拡張するクラスがfragment
実装する必要がありますsurfaceholder.callback
か?
Class_extends_Fragment:
android - Android カスタム カメラ アプリの再撮影が頻繁にクラッシュする
私は独自のカスタム カメラ アプリを開発しています。キャプチャボタンをクリックすると、アプリケーションを実行しているときにカメラが現在の位置をキャプチャします。実際に必要なのは、必要なときにいつでも写真を撮り直すことです。アプリがクラッシュします。ここにコードを以下に添付しました。エラーを解決するのを手伝ってください。
MainActivity.java
ShowCamera.java
activity_main.xml
java - Logcat は Fragment を SurfaceHolder でオーバーレイするときにエラーをスローします
インスタンスでオーバーレイしようとしてfragment
いcameraPreview
ます。レイアウトのルートにはfragment
xml タグがあり<surfaceview
ます。アプリを実行するとクラッシュし、以下のエラーがスローされます。なぜそれが起こるのですか?
Class_Extends_Fragment:
MainActivity_layout:
fragmentRoot_layout:
logCat: