package com.mj.testwindow;


import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;


public class MainActivity extends Activity {


private WindowManager mWindowManager = null;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


// setContentView();


mWindowManager = (WindowManager) getApplicationContext()
.getSystemService("window");


addWin();
}


private WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams();


private View mView = null;


// 使用WindowManager.addView()直接添加view到WindowManager
void addWin() {


mView = InitView();


mLayoutParams.type = LayoutParams.TYPE_PHONE; // 设置window
// type
mLayoutParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明


mLayoutParams.flags = LayoutParams.FLAG_ALT_FOCUSABLE_IM
| LayoutParams.FLAG_NOT_FOCUSABLE;


mLayoutParams.gravity = Gravity.TOP | Gravity.LEFT;


mLayoutParams.x = 0;
mLayoutParams.y = 0;


// mLayoutParams.height = 100;
// mLayoutParams.width = 150;


mLayoutParams.height = LayoutParams.WRAP_CONTENT;
mLayoutParams.width = LayoutParams.WRAP_CONTENT;


mWindowManager.addView(mView, mLayoutParams);
}


int left_arrow_id = 0x123654;
int right_arrow_id = left_arrow_id + 100;


TextView mTv_right = null;
TextView mTv_left = null;


int ARROW_WIDTH = 40;


// 不使用布局文件,自定义界面
private View InitView() {
// FrameLayout group = new FrameLayout(this);
FrameLayout flyt = new FrameLayout(this);
RelativeLayout layout = new RelativeLayout(this);
mTv_left = new TextView(this);
mTv_left.setText("<");
mTv_left.setId(left_arrow_id);
mTv_left.setGravity(Gravity.CENTER);
mTv_left.setOnClickListener(mListener);


mTv_right = new TextView(this);
mTv_right.setText(">");
mTv_right.setId(right_arrow_id);
mTv_right.setGravity(Gravity.CENTER);
mTv_right.setVisibility(View.GONE);
mTv_right.setOnClickListener(mListener);


RelativeLayout.LayoutParams p1 = new RelativeLayout.LayoutParams(ARROW_WIDTH,
FrameLayout.LayoutParams.MATCH_PARENT);
p1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
layout.addView(mTv_left, p1);


RelativeLayout.LayoutParams p2 = new RelativeLayout.LayoutParams(ARROW_WIDTH,
FrameLayout.LayoutParams.MATCH_PARENT);
p2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout.addView(mTv_right, p2);


ImageView img = new ImageView(this);
img.setBackgroundResource(R.drawable.background);
RelativeLayout.LayoutParams p3 = new RelativeLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
p3.addRule(RelativeLayout.LEFT_OF, right_arrow_id);
p3.addRule(RelativeLayout.RIGHT_OF, left_arrow_id);
layout.addView(img, p3);


img.setOnLongClickListener(new View.OnLongClickListener() {


@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
mWindowManager.removeView(mView);


return false;
}
});


FrameLayout.LayoutParams p4 = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
flyt.addView(layout, p4);


return flyt;
}


private View.OnClickListener mListener = new View.OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.getId() == left_arrow_id) {
mTv_right.setVisibility(View.VISIBLE);
mTv_left.setVisibility(View.GONE);
} else if (v.getId() == right_arrow_id) {
mTv_right.setVisibility(View.GONE);
mTv_left.setVisibility(View.VISIBLE);
}
}
};


}

更多相关文章

  1. 【Android】Android中AlertDialog对话框的使用实例
  2. 清除app数据等同于设置中的清除数据
  3. Android7.0中文文档(API) -- Switch
  4. Android(安卓)设置声音时出现按键音
  5. Android(安卓)FragmentManager之beginTransaction()
  6. 【Android】:跳转系统界面汇总
  7. Android实现Bitmap高斯模糊效果
  8. android 调用摄像头
  9. Android(安卓)5.0 默认水波纹背景属性,可设置任何View

随机推荐

  1. 【PHP文件操作】文件目录操作基本操作及
  2. 【PHP会话控制】理解会话控制cookie和ses
  3. 数据库查询构造器
  4. TF卡里面的文件名目录名或卷标语法不正确
  5. mysql数据库ddl与dml语言实操
  6. 名词解释:外贸推广人员口中的谷歌SEO是什
  7. Java 给 Word 添加数字签名
  8. 变换Mac上的墙纸的4种方法
  9. LDAP/SASL/GSSAPI/Kerberos编程API(5)--k
  10. 项目启动大会,数据治理项目不容忽视的关键