私は現在のmain.xmlレイアウトに追加する必要があるカスタムサーフェイスビューを持っています。このサーフェスビューは、カメラのライブビューをストリーミングするために使用されます。私はこの仕事をすることに問題があります。main.xmlにカスタムサーフェイスビューを表示
私はしかし、私は私のカスタムsurfaceviewがメインビューにしたくない私は
cameraPreview = new HttpCameraPreview(this, null, viewWidth, viewHeight);
setContentView(cameraPreview);
ようなコードを実行しても何ら問題はありません。私はそれが私のmain.xmlの中のsurfaceviewであることを望みます。
いくつかの提案/アドバイスを希望します。私はこのリンクを参照しようとしましたが、助けもありません。 Draw SurfaceView from layout xml
ありがとうございました!
以下のようにmain.xmlの一部:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/preview_image_view"
android:layout_height="wrap_content"
android:layout_weight="3.0"
android:layout_width="fill_parent"
/>
<SurfaceView Class ="org.saboteur.nikonshooter.HttpCameraPreview"
android:layout_width="fill_parent"
android:id="@+id/surface_preview"
android:layout_height="10dip"
android:layout_weight="3"/>
このように私のカスタムsurfaceviewクラス部分のコードを見て:
public class HttpCameraPreview extends SurfaceView implements SurfaceHolder.Callback {
private static final String TAG = "test";
private static final String url = "http://bijint.com/jp/tokei_images/0022.jpg";
private CanvasThread canvasThread;
private SurfaceHolder holder;
private HttpCamera camera;
private HttpCameraPreview mSurfaceView;
private int viewWidth;
private int viewHeight;
public HttpCameraPreview(Context context, AttributeSet attributeSet, int viewWidth, int viewHeight) {
super(context, attributeSet);
Log.e("HttpCameraPreview", "inside HttpCameraPreview()");
Log.e("HttpCameraPreview", "create surface view to r.id");
try{
holder = getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_NORMAL);
this.viewWidth = viewWidth;
this.viewHeight = viewHeight;
canvasThread = new CanvasThread();
catch (Exception e){
Log.e("HttpCameraPreview", "--->Exception = "+e);
}
}
によって別の質問をすることを呼び出す:layout_width = "fill_parent: なぜできない
keithwb