private GestureDetector detector; private ViewFlipper flipper; private int flag = 0;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="8dp"
android:paddingRight="8dp">
<TextView android:id="@+id/Textt" android:layout_width="wrap_content"
android:layout_height="wrap_content" ></TextView>
<ListView android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#00FF00"
android:layout_weight="1" android:drawSelectorOnTop="false"/>
<TextView android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000" android:text="No data"/>
<Button android:id="@+id/buttton1" android:text="text"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"/>public class HelloListView extends ListActivity {
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
String[] countries=getResources().getStringArray(R.array.countries_array);
TextView txt=(TextView)findViewById(R.id.Textt);
txt.setText(R.string.text);
lv=getListView();
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), ((TextView)view).getText(), Toast.LENGTH_SHORT).show();
//lv.setVisibility(false);
}
});
Button button=(Button)findViewById(R.id.buttton1);
button.setOnClickListener(clicklistener);
}
OnClickListener clicklistener=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(lv.isShown())
lv.setVisibility(View.GONE);
else
lv.setVisibility(View.VISIBLE);
}
}; static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania", "Algeria", "American Samoa",
"Andorra", "Angola", "Anguilla", "Antarctica",
"Antigua and Barbuda", "Argentina", "Armenia", "Aruba",
"Australia", "Austria", "Azerbaijan", "Bahrain", "Bangladesh",
"Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda",
};}
我的目的让lv覆盖txt,lv是半透明的,点击按钮后能够使lv消失或者显示
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ViewFlipper;public class ff extends Activity implements OnGestureListener {
private GestureDetector detector;
private ViewFlipper flipper;
private int flag = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper01);
flipper.addView(addButtonByText("按钮"),new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
this.flipper.addView(addTextByText("文本框"),new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
detector = new GestureDetector(this);
}
public View addButtonByText(String text){
Button btn = new Button(this);
btn.setText(text);
return btn;
}
public View addTextByText(String text){
TextView tv = new TextView(this);
tv.setText(text);
tv.setGravity(1);
return tv;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.i("Fling", "Activity onTouchEvent!");
return this.detector.onTouchEvent(event);
}
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
} public boolean onFling(MotionEvent e1, MotionEvent e2, float arg2,
float arg3) {
Log.i("Fling", "Fling Happened!");
if (e1.getX() - e2.getX() > 10) {
this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));
if (flag % 2 == 0)
this.flipper.showNext();
else
this.flipper.showPrevious();
flag = (flag + 1) % 2;
return true;
} else if (e1.getX() - e2.getX() < -10) {
this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_out));
if (flag % 2 == 0)
this.flipper.showPrevious();
else
this.flipper.showNext();
flag = (flag + 1) % 2;
return true;
}
return true; } public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub
} public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
} public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub
} public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
}
main.xml:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ViewFlipper
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/ViewFlipper01"
>
</ViewFlipper
</LinearLayout>下面是四个动画xml,放到anim文件夹下
push_left_in.xml<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0"
android:duration="500" />
<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
android:duration="500" />
</set>
push_left_out.xml<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p"
android:duration="500" />
<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
android:duration="500" />
</set>
push_right_in.xml<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p" android:toXDelta="0"
android:duration="500" />
<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
android:duration="500" />
</set>
push_right_out.xml<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%p"
android:duration="500" />
<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
android:duration="500" />
</set>
ViewFlipper :"Only one child is shown at a time",请问如何实现,listView能够以半透明白形式覆盖下面的TextView,而不是只显示一个?