package com.kx.kxbottomdialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import java.util.List;
/**
* @ 创建: kx
* @ 时间: 2018/10/22
* @ 描述:
*/
public class BottomCirTraDialog extends Dialog implements AdapterView.OnItemClickListener {
private List<String> mList;
private SelectDialogListener mListener;
private Activity mActivity;
private boolean mUseCustomColor = false;
private int mFirstItemColor;
private int mOtherItemColor;
private Button mBtnCancel;
public BottomCirTraDialog(@NonNull Context context) {
super(context);
}
public BottomCirTraDialog(Activity activity, int theme, SelectDialogListener listener, List<String> names) {
super(activity, theme);
mActivity = activity;
mListener = listener;
mList = names;
//点击Dialog外部消失
setCanceledOnTouchOutside(true);
}
public interface SelectDialogListener {
void onItemClick(AdapterView<?> parent, View view, int position, long id);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = getLayoutInflater().inflate(R.layout.dialog_exam_type, null);
setContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
Window window = getWindow();
//设置动画
window.setWindowAnimations(R.style.main_menu_animstyle);
WindowManager.LayoutParams attributes = window.getAttributes();
attributes.x = 0;
attributes.y = mActivity.getWindowManager().getDefaultDisplay().getHeight();
//保证按钮水平满屏
attributes.width = ViewGroup.LayoutParams.MATCH_PARENT;
attributes.height = ViewGroup.LayoutParams.WRAP_CONTENT;
//设置显示位置
onWindowAttributesChanged(attributes);
initView();
}
private void initView() {
DialogAdapter dialogAdapter = new DialogAdapter(mList);
ListView listView = findViewById(R.id.dialog_list);
mBtnCancel = (Button) findViewById(R.id.btn_cancel);
listView.setOnItemClickListener(this);
listView.setAdapter(dialogAdapter);
mBtnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mCancelListener != null){
mCancelListener.onCancelClick(v);
}
dismiss();
}
});
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mListener.onItemClick(parent, view, position, id);
dismiss();
}
private class DialogAdapter extends BaseAdapter {
private List<String> mStrings;
private Viewholder viewholder;
private LayoutInflater layoutInflater;
public DialogAdapter(List<String> strings) {
this.mStrings = strings;
this.layoutInflater = mActivity.getLayoutInflater();
}
@Override
public int getCount() {
return mStrings.size();
}
@Override
public Object getItem(int position) {
return mStrings.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
viewholder = new Viewholder();
convertView = layoutInflater.inflate(R.layout.view_dialog_item, null);
viewholder.dialogItemButton = (TextView) convertView.findViewById(R.id.dialog_item_bt);
convertView.setTag(viewholder);
} else {
viewholder = (Viewholder) convertView.getTag();
}
viewholder.dialogItemButton.setText(mStrings.get(position));
if (!mUseCustomColor) {
mFirstItemColor = mActivity.getResources().getColor(R.color.color_0073FF);
mOtherItemColor = mActivity.getResources().getColor(R.color.color_0073FF);
}
//根据数量 设置圆角 数量为1,其他上下,剩余中
if (1 == mStrings.size()) {
viewholder.dialogItemButton.setTextColor(mFirstItemColor);
viewholder.dialogItemButton.setBackgroundResource(R.drawable.dialog_item_bg_only);
} else if (position == 0) {
viewholder.dialogItemButton.setTextColor(mFirstItemColor);
viewholder.dialogItemButton.setBackgroundResource(R.drawable.select_dialog_item_bg_top);
} else if (position == mStrings.size() - 1) {
viewholder.dialogItemButton.setTextColor(mOtherItemColor);
viewholder.dialogItemButton.setBackgroundResource(R.drawable.select_dialog_item_bg_buttom);
} else {
viewholder.dialogItemButton.setTextColor(mOtherItemColor);
viewholder.dialogItemButton.setBackgroundResource(R.drawable.select_dialog_item_bg_center);
}
return convertView;
}
}
public static class Viewholder {
public TextView dialogItemButton;
}
/**
* 取消事件监听接口
*
*/
private SelectDialogCancelListener mCancelListener;
public interface SelectDialogCancelListener {
void onCancelClick(View v);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
安卓两种底部弹出窗dialog实现方式 (101个子文件)
gradlew.bat 2KB
fileSnapshots.bin 1.47MB
classAnalysis.bin 783KB
jarAnalysis.bin 318KB
fileHashes.bin 170KB
taskHistory.bin 147KB
taskHistory.bin 51KB
taskJars.bin 20KB
resourceHashesCache.bin 19KB
last-build.bin 1B
built.bin 0B
.gitignore 127B
.gitignore 8B
build.gradle 954B
build.gradle 573B
settings.gradle 16B
gradlew 5KB
app.iml 11KB
KxBottomDialog.iml 868B
gradle-wrapper.jar 52KB
BottomCirTraDialog.java 6KB
MainActivity.java 3KB
BottomDialog.java 3KB
ExampleInstrumentedTest.java 769B
ToastUtil.java 612B
ExampleUnitTest.java 415B
taskHistory.lock 17B
javaCompile.lock 17B
fileContent.lock 17B
fileHashes.lock 17B
cache.properties.lock 2B
ic_launcher_round.png 15KB
ic_launcher_round.png 10KB
ic_launcher.png 9KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
ic_launcher_round.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 2KB
proguard-rules.pro 772B
gradle.properties 747B
local.properties 460B
gradle-wrapper.properties 236B
cache.properties 51B
workspace.xml 167KB
ic_launcher_background.xml 6KB
misc.xml 2KB
ic_launcher_foreground.xml 2KB
styles.xml 2KB
dialog_login_out.xml 1KB
dialog_exam_type.xml 1KB
activity_main.xml 1KB
com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml 762B
com_android_support_animated_vector_drawable_26_1_0.xml 739B
AndroidManifest.xml 739B
com_android_support_support_vector_drawable_26_1_0.xml 734B
com_android_support_support_media_compat_26_1_0.xml 719B
com_android_support_support_core_utils_26_1_0.xml 709B
com_android_support_test_espresso_espresso_core_3_0_2.xml 707B
com_android_support_support_fragment_26_1_0.xml 699B
com_android_support_support_core_ui_26_1_0.xml 694B
com_android_support_support_compat_26_1_0.xml 689B
com_android_support_appcompat_v7_26_1_0.xml 679B
com_android_support_support_v4_26_1_0.xml 669B
com_android_support_test_monitor_1_0_2.xml 659B
dialog_item_bg_only.xml 657B
android_arch_lifecycle_runtime_1_0_0.xml 655B
com_android_support_test_runner_1_0_2.xml 654B
select_dialog_item_bg_buttom.xml 641B
gradle.xml 626B
select_dialog_item_bg_top.xml 617B
com_android_support_support_annotations_27_1_1_jar.xml 607B
com_android_support_support_annotations_26_1_0_jar.xml 606B
org_hamcrest_hamcrest_integration_1_3_jar.xml 576B
runConfigurations.xml 564B
org_hamcrest_hamcrest_library_1_3_jar.xml 555B
android_arch_lifecycle_common_1_0_0_jar.xml 546B
org_hamcrest_hamcrest_core_1_3_jar.xml 541B
com_squareup_javawriter_2_1_1_jar.xml 536B
android_arch_core_common_1_0_0_jar.xml 531B
javax_inject_javax_inject_1_jar.xml 526B
com_android_support_constraint_constraint_layout_1_1_3.xml 499B
view_dialog_item.xml 496B
junit_junit_4_12_jar.xml 485B
com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml 424B
modules.xml 365B
com_google_code_findbugs_jsr305_2_0_1_jar.xml 358B
colors.xml 348B
select_dialog_item_bg_center.xml 329B
photo_choose_bg.xml 320B
net_sf_kxml_kxml2_2_3_0_jar.xml 285B
photo_dialog_out_anim.xml 285B
photo_dialog_in_anim.xml 285B
ic_launcher.xml 274B
ic_launcher_round.xml 274B
dialog_bottom_enter.xml 247B
dialog_bottom_exit.xml 245B
encodings.xml 200B
共 101 条
- 1
- 2
资源评论
KX興
- 粉丝: 2423
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功