我正在创建一个手电筒应用程序...我想在一个java文件中链接两个布局...一个布局是当手电筒熄灭时...另一个布局显示一个有启发性的手电筒......我工作过在它上面,现在当我按下按钮它转移到另一个布局..(照亮的那个)......但是当我点击按钮时它不会回到第一个......怎么办? 这是代码..
我的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();
}
}
答案 0 :(得分:2)
查看ViewSwitcher。
Here就是一个例子。
答案 1 :(得分: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;
}
}
答案 2 :(得分:0)
为什么不在按钮上更改背景图像?
希望我理解你的问题是正确的,你会觉得这很有帮助。