0

私は懐中電灯アプリを作成しています...1つのJavaファイルに2つのレイアウトをリンクしたい...1つのレイアウトはトーチが消灯しているときです...そしてもう1つのレイアウトは照らしているトーチを示しています...私はそれに取り組んできましたボタンを押すと、他のレイアウトに移動します。(照明のレイアウト)...しかし、ボタンをクリックしても最初のレイアウトに戻りません...どうすればよいですか?これがコードです。

私のXML1:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/fl"
tools:context=".Flash" >

<Button
    android:id="@+id/ib2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/bu" />

私のXML2:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fl1"
android:orientation="vertical" >

<Button
    android:id="@id/ib2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/bu" />

私のFlashlight.javaファイル(インポートを除く):

    package com.potapptoes.flashlight;
    public class Flash extends Activity implements OnClickListener {
Camera cam = null;
Button ib1;
Parameters para;
PowerManager pm;
WakeLock wl;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "whatever");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    wl.acquire();
    initialize();
    ib1.setOnClickListener(this);
}

private void initialize() {
    // TODO Auto-generated method stub
    ib1 = (Button) findViewById(R.id.ib2);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if (cam == null) {
        setContentView(R.layout.main2);
        cam = Camera.open();
        para = cam.getParameters();
        para.setFlashMode(Parameters.FLASH_MODE_TORCH);
        cam.setParameters(para);
    } else {
                    setContentView(R.layout.main);
        para.setFlashMode(Parameters.FLASH_MODE_OFF);
        cam.setParameters(para);
        cam.release();
        cam = null;
    }
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    para.setFlashMode(Parameters.FLASH_MODE_OFF);
    cam.setParameters(para);
    cam.release();
    cam = null;
    wl.release();
    finish();
}
    }
4

3 に答える 3

2

ViewSwitcherをチェックしてください。

これが例です。

于 2012-12-11T16:09:08.840 に答える
0
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if (cam == null) {
        setContentView(R.layout.main2);
        cam = Camera.open();
        para = cam.getParameters();
        para.setFlashMode(Parameters.FLASH_MODE_TORCH);
        cam.setParameters(para);
    } else {
        setContentView(R.layout.main); // you forgot this line
        para.setFlashMode(Parameters.FLASH_MODE_OFF);
        cam.setParameters(para);
        cam.release();
        cam = null;
    }
}
于 2012-12-11T16:02:40.727 に答える
0

ボタンクリックで背景画像を変えてみませんか?

  1. ボタンのonClickListenerを作成します。
  2. ボタンのクリックで懐中電灯のオンとオフをトリガーするブール変数を作成します。
  3. 懐中電灯がすでに「トリガー」されているかどうかを確認した後、背景を変更します。

私があなたの質問を正しく理解したことを願っています、そしてあなたはこれが役に立つと思うでしょう。

于 2017-03-14T22:31:54.050 に答える