android中弹出窗可以通过哪些实现 Android实现一个弹出框.
android中弹出窗可以通过哪些实现
先来剖析一下PopupWindow的一些东西
1、它是一个Window,与Dialog最大的不同是它不依赖于Activity,可以在一个应用的任何地方弹出来 ,但是它需要本应用的一个Context。
2、在重写它时间,必须要调用super(Context context)这个构造方法,否则在低版本一定会出现异常
3、简单布局的PopWindow弹出不会出现占满全屏的现象,因为它在写XML时间它的宽高已经计算好了,但是如果它是各个布局和ListView,GridView混合来做的话,那就一定会有问题,因为它事先无法计算出来,只有等到绘制结束之后才能绘制出来,这是一个很大的问题。
解决方案有两个:
1>如果这个listview,gridview比较固定可以写成固定布局
2>根据主流分辨率,作判断,它的高度用屏幕的比例来算出。
4、主流应用如何应用PopupWindow。
1>、像微博那样,宽度和高度是一个固定的值,可以去滑动,很显然 它用的是一个listview,它不需要在代码中考虑它的真实高度和宽度。
Android实现一个弹出框.
AlertDialog正解。
Builder builder = new Builder(this)
builder.setTitle("")
builder.setIcon(R.drawable.icon)
builder.setView(View)//自己定义一个View,就可以放进去
builder.show()
或者用popupwindow
然后为popupwindow的背景设置透明度
android的这种弹出菜单(窗口)怎么实现
可以用popupWindow
public class PopUpActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
LayoutInflater inflater = LayoutInflater.from(this)
// 引入窗口配置文件
View view = inflater.inflate(R.layout.main2, null)
// 创建PopupWindow对象
final PopupWindow pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false)
Button btn = (Button) findViewById(R.id.btn)
// 需要设置一下此参数,点击外边可消失
pop.setBackgroundDrawable(new BitmapDrawable())
//设置点击窗口外边窗口消失
pop.setOutsideTouchable(true)
// 设置此参数获得焦点,否则无法点击
pop.setFocusable(true)
}
}
popupWindow.showAsDropDown(v)让它出现在上方标题栏的下方
布局里可以写成listview,也可以写成死布局
还有就是ActionBar,但个人感觉ActionBar没有popupWindow灵活,反正我一般这种情况都会用popupWindow,看个人爱好