PopupWindow 모방 위 챗 플로트 팝 업 상자 효과
9374 단어 PopupWindow작은 편지팝 업 프레임
코드 는 다음 과 같 습 니 다:
우선 상단 단 추 를 정의 하 는 main.xml 파일 입 니 다.
<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:id="@+id/main"
android:orientation="vertical"
tools:context=".MainActivity"
android:background="@color/white" >
<RelativeLayout
android:id="@+id/rl_action_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dip"
android:background="@color/gold" >
<Button
android:id="@+id/more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dip"
android:background="@drawable/more" />
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dip"
android:layout_toLeftOf="@+id/more"
android:background="@drawable/add"
/>
<Button
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dip"
android:layout_toLeftOf="@+id/add"
android:background="@drawable/search"
/>
</RelativeLayout>
</LinearLayout>
다음으로 팝 업 상자 PopupWindow 를 정의 하 는 popupwindowdialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/click"
android:cacheColorHint="#00000000"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_dialog"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:listSelector="@drawable/grouplist_item_bg_normal" >
</ListView>
</LinearLayout>
다음은 모든 팝 업 상자 에 표 시 된 텍스트 text.xml 입 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:padding="5dp"
android:textSize="20sp" />
</LinearLayout>
마지막 으로 메 인 인터페이스의 MainActivity.java 입 니 다.
package com.bn.weixindemo;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
/**
*
*@title
*@description popuwindow
*@author zhengxiaolin
*@version 1.0
*@created 2014-5-23 12:11:11
*@changeRecord [ ]<br />
*/
public class MainActivity extends Activity implements OnClickListener{
private Button mBtnMore,mBtnAdd,mBtnSearch;
private PopupWindow popupWindow;
private LinearLayout layout;
private ListView listView;
private String[] more = {" "," "," "," "," "};
private String[] add ={" "," "," "," "," "};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBtnMore = (Button) findViewById(R.id.more);
mBtnAdd = (Button) findViewById(R.id.add);
mBtnSearch = (Button) findViewById(R.id.search);
setOnClickListener();
}
private void setOnClickListener() {
mBtnMore.setOnClickListener(this);
mBtnAdd.setOnClickListener(this);
mBtnSearch.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.more:
mBtnMore.getTop();
int y = mBtnMore.getBottom() * 3 / 2;
int x = getWindowManager().getDefaultDisplay().getWidth();
showMorePopupWindow(x, y);
break;
case R.id.add:
mBtnAdd.getTop();
int y1 = mBtnAdd.getBottom() * 3 / 2;
int x1 = getWindowManager().getDefaultDisplay().getWidth();
showAddPopupWindow(x1, y1);
break;
case R.id.search:
Toast.makeText(getBaseContext(), " ", 1).show();
default:
break;
}
}
public void showMorePopupWindow(int x, int y) {
layout = (LinearLayout) LayoutInflater.from(MainActivity.this).inflate(
R.layout.popupwindow_dialog, null);
listView = (ListView) layout.findViewById(R.id.lv_dialog);
listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
R.layout.text, R.id.tv_text, more));
popupWindow = new PopupWindow(MainActivity.this);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow
.setWidth(getWindowManager().getDefaultDisplay().getWidth() / 2);
popupWindow.setHeight(420);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setContentView(layout);
popupWindow.showAtLocation(findViewById(R.id.main), Gravity.LEFT
| Gravity.TOP, x, y);// Gravity, center.
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(getBaseContext(), " :"+more[arg2], 1).show();
popupWindow.dismiss();
popupWindow = null;
}
});
}
/**
* + popuwindow
*/
public void showAddPopupWindow(int x, int y) {
layout = (LinearLayout) LayoutInflater.from(MainActivity.this).inflate(
R.layout.popupwindow_dialog, null);
listView = (ListView) layout.findViewById(R.id.lv_dialog);
listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
R.layout.text, R.id.tv_text, add));
popupWindow = new PopupWindow(MainActivity.this);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow
.setWidth(getWindowManager().getDefaultDisplay().getWidth() / 2);
popupWindow.setHeight(420);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setContentView(layout);
popupWindow.showAtLocation(findViewById(R.id.main), Gravity.LEFT
| Gravity.TOP, x, y);// Gravity, center.
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(getBaseContext(), " :"+add[arg2], 1).show();
popupWindow.dismiss();
popupWindow = null;
}
});
}
}
자,주요 코드 가 완성 되 었 습 니 다.실현 효 과 는 다음 과 같 습 니 다.본인 은 그림 이 없 기 때문에 팝 업 상자 의 배경 그림 이 처리 되 지 않 았 습 니 다.팝 업 상자 의 모든 항목 의 앞 에 도 그림 이 추가 되 지 않 았 습 니 다.필요 한 학생 이 스스로 추가 할 수 있 습 니 다.(효과 가 나 왔 습 니 다.디 테 일이 조정 되 지 않 았 습 니 다.양해 바 랍 니 다)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콩짜개 검색 - 위 챗 공공 플랫폼 접속 (wechatpy)위의 글 은 위 챗 공공 플랫폼 을 어떻게 연결 하 는 지 소 개 했 지만 그 안의 검증 코드 는 우리 가 스스로 실현 한 것 이다.그러나 지금 우 리 는 더 좋 은 선택 이 생 겼 다.위 챗 (WeChat) 퍼 블...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.