项目中的常见控件popupWindow
来源:互联网 发布:sl会员商城源码 编辑:程序博客网 时间:2024/06/01 10:06
项目中常见的一个控件popupWindow,使用起来非常方便,可以随心所欲的打进去一个View,就能达我们的目的;
这里我基本是把项目中写的代码拷贝过来了,主要是弹出的一个自定的广告popupWindow;
效果图:
1.MainActivity.java
public class MainActivity extends AppCompatActivity { PopupWindow popupWindow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.popupWindow); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.i("diajij", "djoiajish"); //直接自定义一个view然后打进去就ok了 我这里演示一个广告的popupWindow View itemView = View.inflate(MainActivity.this, R.layout.local_guanggao_detail_item, null); //测试 :自定义的view里面只有一个TextView //TextView name = (TextView) itemView.findViewById(R.id.text_name); //name.setText("许可"); TextView localDetailTvCityName = (TextView) itemView.findViewById(R.id.local_detail_tv_city_name); ImageView localDetailIvShiMing = (ImageView) itemView.findViewById(R.id.local_detail_iv_shiming); TextView localDetailTvShiMing = (TextView) itemView.findViewById(R.id.local_detail_tv_shiming); ImageView localDetailIvGuanFang = (ImageView) itemView.findViewById(R.id.local_detail_iv_guanfang); TextView localDetailTvGuanFang = (TextView) itemView.findViewById(R.id.local_detail_tv_guanfang); TextView localDetailTvCityPartner = (TextView) itemView.findViewById(R.id.local_detail_tv_city_partner); TextView localDetailTvContain = (TextView) itemView.findViewById(R.id.local_item_detail_tv_contain); TextView localDetailTvName = (TextView) itemView.findViewById(R.id.local_detail_tv_name); ImageView localDetailPhoneTb = (ImageView) itemView.findViewById(R.id.local_detail_phone_tb); TextView localDetailPhone = (TextView) itemView.findViewById(R.id.local_detail_phone); ImageView localDetailWeixinTb = (ImageView) itemView.findViewById(R.id.local_detail_weixin_tb); final TextView localDetailWeixin = (TextView) itemView.findViewById(R.id.local_detail_weixin); //右上角的叉叉图片 ImageView localDetailClose = (ImageView) itemView.findViewById(R.id.local_detail_close); localDetailClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (popupWindow != null) { popupWindow.dismiss(); } } }); //城市名 localDetailTvCityName.setText("中国"); localDetailTvCityPartner.setText("城市合伙人"); //头像 //MyApplication.imageLoader.displayImage(partnersBeen.get(i).headImg, localDetailCivHead, MyApplication.getAvatorOptions()); //实名认证 localDetailIvShiMing.setVisibility(View.VISIBLE); localDetailTvShiMing.setText("实名认证"); //官方授权 localDetailIvGuanFang.setVisibility(View.VISIBLE); localDetailTvGuanFang.setText("官方授权"); //内容 localDetailTvContain.setText("我是广告内容,我是广告内容,我是广告内容,我是广告内容,我是广告内容,我是广告内容"); //负责人 localDetailTvName.setText("负责人:许可"); // 电话 localDetailPhoneTb.setVisibility(View.VISIBLE); localDetailPhone.setText("888888888"); localDetailPhone.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { ClipboardManager cm = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE); // 将文本内容放到系统剪贴板里。 cm.setText(localDetailWeixin.getText()); Toast.makeText(getApplicationContext(), "手机号已经复制到剪切板了", Toast.LENGTH_SHORT).show(); return true; } }); //微信 localDetailWeixinTb.setVisibility(View.VISIBLE); localDetailWeixin.setText("888888888"); localDetailWeixin.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { ClipboardManager cm = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE); // 将文本内容放到系统剪贴板里。 cm.setText(localDetailWeixin.getText()); Toast.makeText(getApplicationContext(), "微信已经复制到剪切板了", Toast.LENGTH_SHORT).show(); return true; } }); //创建popupWindow,第一个参数是自定义的view,第二个参数分别是popupWindow的宽和高(第四个参数是聚集(true/false),下面手动设置了) popupWindow = new PopupWindow(itemView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); //触摸点击事件 popupWindow.setTouchable(true); //聚集 popupWindow.setFocusable(true); //设置允许在外点击消失 popupWindow.setOutsideTouchable(true); //点击返回键popupwindown消失 popupWindow.setBackgroundDrawable(new BitmapDrawable()); //背景变暗 WindowManager.LayoutParams params = MainActivity.this.getWindow().getAttributes(); params.alpha = 0.5f; MainActivity.this.getWindow().setAttributes(params); popupWindow.setTouchInterceptor(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return false; } }); //监听如果popupWindown消失之后背景变亮 popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { WindowManager.LayoutParams params = MainActivity.this.getWindow() .getAttributes(); params.alpha = 1f; MainActivity.this.getWindow().setAttributes(params); } }); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00ffffff"))); popupWindow.showAtLocation(view, Gravity.CENTER, 0, 0); } }); } @Override protected void onDestroy() { super.onDestroy(); popupWindow.dismiss(); }}
控件比较多,本来还有一个自定义的头像在左上角的,由于文件比较多,这里就把左上角的自定义圆形头像给去掉了,主要是学习popupWindow的功能.
需要注意的是:注意什么时候dismiss()掉popupWIndow;
2.xml文件:R.layout.local_guanggao_detail_item
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="180dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="30dp" android:background="@drawable/local_item_detail"> <RelativeLayout android:id="@+id/local_item_dettail_title" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="44dp" android:layout_marginTop="8dp" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:orientation="horizontal"> <TextView android:id="@+id/local_detail_tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="负责人:许可" android:textColor="#000000" android:textSize="12sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:orientation="horizontal"> <TextView android:id="@+id/local_detail_tv_city_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="中国" android:textSize="10sp" /> <TextView android:id="@+id/local_detail_tv_city_partner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="城市合伙人" android:textSize="10sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_gravity="center" android:layout_margin="8dp" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_marginRight="4dp" android:layout_marginTop="4dp" android:layout_weight="1" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/local_detail_iv_shiming" android:layout_width="15dp" android:layout_height="15dp" android:src="@drawable/shiming" android:visibility="invisible" /> <TextView android:id="@+id/local_detail_tv_shiming" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:gravity="center" android:textSize="10sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_marginRight="4dp" android:layout_marginTop="4dp" android:layout_weight="1" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/local_detail_iv_guanfang" android:layout_width="15dp" android:layout_height="15dp" android:src="@drawable/shouquan" android:visibility="invisible" /> <TextView android:id="@+id/local_detail_tv_guanfang" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:gravity="center" android:textSize="10sp" /> </LinearLayout> </LinearLayout> </RelativeLayout> <TextView android:id="@+id/local_item_detail_tv_contain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/local_item_dettail_title" android:layout_centerInParent="true" android:layout_margin="10dp" android:gravity="left" android:text="广的的啊是的撒是广的撒广的撒广的撒广的撒广的撒是广告广告的" android:textSize="14sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginTop="8dp" android:gravity="center" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/local_detail_phone_tb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/phone" android:visibility="invisible" /> <TextView android:id="@+id/local_detail_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#f84a3c" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/local_detail_weixin_tb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/weixin" android:visibility="invisible" /> <TextView android:id="@+id/local_detail_weixin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#00b900" /> </LinearLayout> </LinearLayout> </RelativeLayout> <ImageView android:id="@+id/local_detail_close" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="30dp" android:src="@drawable/close" /></RelativeLayout>
源代码: http://pan.baidu.com/s/1c21eUhM
1 0
- 项目中的常见控件popupWindow
- 项目中的常见文件
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- 实际项目中的常见算法
- Qt项目中的常见用法
- 实际项目中的常见算法
- 实际项目中的常见算法
- Qt项目中的常见用法
- android控件之popupWindow
- 如何使用JMX监控Kafka
- openwrt uci api续: 找出匿名节点的"名字"
- 我的内核学习笔记12:linux i2c-gpio驱动应用实例
- poj 3233 Matrix Power Series 构造矩阵求等比矩阵和
- [AHK]同花顺treeview树状控件控制(点击资金股票)
- 项目中的常见控件popupWindow
- 小学生算数题
- MySQL数据库(二)
- angular下载文件数据流:乱谈 Blob 与 Object URL
- 【Codeforces Round #383 (Div. 2)】 (A,B,C)
- 堆栈
- 替换元素与非替换元素
- 运输pascal 90分程序
- 自然对数e的推导过程