public class MainActivity extends Activity {
private Button but;
private Button but1;
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but=(Button)findViewById(R.id.but);
but1=(Button)findViewById(R.id.but1);
img=(ImageView)findViewById(R.id.img);
but.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showPop(v);
}
});
but1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
show1(v);
}
});
}
private void showPop(View v){
View pv=View.inflate(this, R.layout.popwindow, null);
TextView tv1=(TextView)pv.findViewById(R.id.tv1);
final PopupWindow pop=new PopupWindow(pv, LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
pop.setOutsideTouchable(true);
pop.setBackgroundDrawable(new ColorDrawable(0x00000000));
pop.setFocusable(true);
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "拍照", Toast.LENGTH_SHORT).show();
pop.dismiss();
}
});
pop.showAtLocation(pv, Gravity.BOTTOM, 0, 0);
}
private void show1(View v){
View popView=View.inflate(this, R.layout.pop, null);
final Button but_zan=(Button)popView.findViewById(R.id.but_zan);
popView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
PopupWindow pop=new PopupWindow(popView,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
//點擊空白處彈框消失
pop.setOutsideTouchable(true);
pop.setBackgroundDrawable(new ColorDrawable(0x00000000));
//點擊back鍵 彈框消失
pop.setFocusable(true);
//顯示在左下方
// pop.showAsDropDown(v);
//顯示在左邊
int[] location=new int[2];
//找到button在屏幕上的位置將寬高存入數(shù)組location中
v.getLocationOnScreen(location);
//獲得popview位置
int width=popView.getMeasuredWidth();
//(設(shè)置popview的位置相對于父容器)將popview設(shè)置button的左邊癣丧,寬度為button左上角位置坐標減去popview的寬度芒炼,高度為button的高度追他。
but_zan.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String s=but_zan.getText().toString();
if(s.equals("贊")){
but_zan.setText("取消贊");
img.setVisibility(View.VISIBLE);
}else{
but_zan.setText("贊");
img.setVisibility(View.GONE);
}
}
});
pop.showAtLocation(v, Gravity.NO_GRAVITY, location[0]-width, location[1]);
}
}