因为我想实现一个查找功能:所以想点击一个按钮出一个半透明的listView(显示查找每个结果),再点击一次此按钮,listView消失?
求源码

解决方案 »

  1.   

    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="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消失或者显示
      

  2.   

    可以设置半透明啊 setAlpha()里面写上数值。。
      

  3.   

    用ViewFlipper实现动画效果!当点击按钮的时候切换动画!其实ViewFlipper是继承自FrameLayout的!package com.bb;import android.app.Activity;
    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>
      

  4.   

    看下可否这是透明度!解决第一个半透明问题!至于你的第二个,点击一个半透明,单击两下listView消失,你可以根据奇偶来判断!
      

  5.   

    非常感谢,但
    ViewFlipper  :"Only one child is shown at a time",请问如何实现,listView能够以半透明白形式覆盖下面的TextView,而不是只显示一个?