android 透明弹出搜索框

1.在QQ一些APP当中有是弹出一个半透明的搜索框的,其实这种效果就是很多种方法,自定义一个Dialog,或者直接将activity的背景变成半透明的也可以的。

下面就是将activity变成半透明的方法。效果图如下:

2.代码如下:

在styles.xml文件中添加自定义Theme

1     <style name="MyTranspaent">
2         
3         <item name="android:windowBackground">@color/transparent_background</item>    
4         <item name="android:windowNoTitle">true</item>   
5         <item name="android:windowIsTranslucent">true</item>   
6         <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>  
7     </style>  

搜索界面的Activity:

 1 public class SecondActivity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_second);
 7     }
 8 
 9     @Override
10     public boolean onCreateOptionsMenu(Menu menu) {
11         // Inflate the menu; this adds items to the action bar if it is present.
12         getMenuInflater().inflate(R.menu.second, menu);
13         return true;
14     }
15 
16     @Override
17     public boolean onTouchEvent(MotionEvent event) {
18 
19         switch (event.getAction()) {
20         case MotionEvent.ACTION_DOWN:
21             SecondActivity.this.finish();
22             break;
23 
24         default:
25             break;
26         }
27 
28         return super.onTouchEvent(event);
29     }
30 
31 }

activity_second.xml文件:

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="horizontal"
 6     tools:context=".SecondActivity" >
 7 
 8     <EditText
 9         android:id="@+id/ed"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:layout_weight="1.0"
13         android:background="#F8F8FF"
14         android:drawableLeft="@drawable/ic_search_normal"
15         android:hint="请输入要查询内容"
16         android:textColor="#000033" />
17 
18 </LinearLayout>

主界面里面就是一个button来弹出这个activity

 1 public class MainActivity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7 
 8         findViewById(R.id.Button01).setOnClickListener(new OnClickListener() {
 9 
10             @Override
11             public void onClick(View v) {
12                 Intent i = new Intent();
13                 i.setClass(MainActivity.this, SecondActivity.class);
14                 startActivity(i);
15             }
16         });
17 
18     }
19 
20 }

关键的就是要在Manifest.xml文件中给弹出的activity添加theme

1   <activity
2             android:name="com.example.compass.SecondActivity"
3             android:label="@string/title_activity_second"
4             android:theme="@style/MyTranspaent" >
5   </activity>

源码下载

posted @ 2014-11-26 16:03  perfect亮  阅读(1434)  评论(0编辑  收藏  举报