android之popwindow操作

源码地址:http://download.csdn.net/detail/u014608640/7298189 不要分的哦

方法一layout:

public void init(){
		ImageView popimg=(ImageView) findViewById(R.id.pop_img);
		popimg.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				LinearLayout layout = new LinearLayout(ShowPopwindow.this);
				layout.setBackgroundColor(Color.GRAY);
				TextView tv = new TextView(ShowPopwindow.this);
				tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
						LayoutParams.WRAP_CONTENT));
				tv.setText("I‘m a pop -----------------------------!");
				tv.setTextColor(Color.WHITE);
				layout.addView(tv);

				// 设置相关属性
				popwindow = new PopupWindow(layout,w,h);
				// 设置动画效果
				popwindow.setFocusable(true);
				popwindow.setOutsideTouchable(true);
				popwindow.setBackgroundDrawable(new BitmapDrawable());

				popwindow.showAsDropDown(et, 0, 1);
//				int[] location = new int[2];
//				 v.getLocationOnScreen(location);  

//				 popwindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popwindow.getHeight());
			}
		});
	}

方法二自定义布局:

public void initPopuptWindow(){
		ImageView popimg=(ImageView) findViewById(R.id.pop_img);

		popimg.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				LayoutInflater inflater = (LayoutInflater)ShowPopwindow.this
						.getSystemService(LAYOUT_INFLATER_SERVICE);
				View v1 = inflater.inflate(R.layout.pop_listview, null);
				EditText et1 = (EditText) v1.findViewById(R.id.et1);
				 w=et.getWidth();
				 h=et.getHeight();
				Log.e("INFO", w+"==="+h);
				// 设置相关属性
				popwindow = new PopupWindow(v1,w,h);
				// 设置动画效果
				popwindow.setFocusable(true);
				popwindow.setOutsideTouchable(true);
				popwindow.setBackgroundDrawable(new BitmapDrawable());

				popwindow.showAsDropDown(et, 0, 1);

			}
		});

	}

XML代码:

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/login_input_bg"
         android:gravity="center_vertical"
         android:padding="0.0dip"
         android:layout_margin="15.0dip"

        >

        <TextView
            android:id="@+id/tx"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="车架号"
            android:textColor="#f00"
            android:layout_centerVertical="true"
            android:padding="10.0dip"
            />

        <EditText
            android:id="@+id/lc"
            android:layout_width="match_parent"
            android:layout_height="43.0dip"
            android:layout_toRightOf="@id/tx"
            android:background="@null"
            />

        <ImageView
            android:id="@+id/pop_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bg_pull2"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:padding="10.0dip"
            />
    </RelativeLayout>

代码完毕!

android之popwindow操作

时间: 2024-10-10 07:28:41

android之popwindow操作的相关文章

Android Sqlite的操作

1.写一个类继承SQLiteOpenHelper public class MyHelper extends SQLiteOpenHelper { public MyHelper(Context context) { super(context, Const.DB_DBNAME , null, Const.DB_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteData

Android Studio常用操作技巧

这段时间一直在用Android Studio做一些Demo的开发,一开始从Eclipse中转向这个开发工具,各种不适应,希望此博文可以一直更新,还有网友可以分享出自己方便更好更快开发的一些技巧. 首先我讲一些经常用到的快捷键吧,网上很多都只说一个大概,很模糊,也不知道什么时候才会用到.我们尽量让这篇博文有作用而不是纯粹的Copy吧! 虽然说Android Studio可以直接一键把所有快捷键设置成Eclipse的快捷键,但是想到你身边的同事,有可能不一定会设置成Eclipse,这样有的时候你如果

android 简单文件操作

1.布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orient

【转】android创建Popwindow弹出菜单的两种方式

方法一的Activity [java] view plaincopy package com.app.test02; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import

Android的手势操作识别

摘要 首先,在Android系统中,每一次手势交互都会依照以下顺序执行. 1. 接触接触屏一刹那,触发一个MotionEvent事件. 2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该MotionEvent对象. 3. 通过GestureDetector(手势识别器)转发次MotionEvent对象 首先,在Android系统中,每一次手势交互都会依照以下顺序执行. 1. 接触接触屏一刹那,触发一个MotionEvent事件. 2. 该事件被OnTouchLi

【工作记录】android手势事件操作记录

/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX:X轴上的移动速度,像素/秒 // velocityY:Y轴上的移动速度,像素/秒 // 触发条件 : /

Android的手势操作识别-转

Android的手势操作识别 时间:2012-10-20 23:09 来源:未知 作者:admin 点击: 282 次 摘要 首先,在Android系统中,每一次手势交互都会依照以下顺序执行. 1. 接触接触屏一刹那,触发一个MotionEvent事件. 2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该MotionEvent对象. 3. 通过GestureDetector(手势识别器)转发次MotionEvent对象 首先,在Android系统中,每一次手势交

android管理联系人操作

ContentProvider扩展之管理系统联系人 我们都知道ContentProvider是用来共享数据的,然而android本身就提供了大量的ContentProvider,例如联系人信息,系统的多媒体信息等,这些系统的ContentProvider都提供了供其他应用程序访问的Uri,开发者可以通过ContentResolver来调用系统的ContentProvider提供的insert()/update()/delete()/query()方法,从而实现自己的需求. 1.了解系统联系人的结

Android——使用SQLiteDatabase操作SQLite数据库

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是