添加网络图片资源下载对话框
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Wed Nov 19 11:20:40 GMT 2025
|
#Wed Nov 19 12:22:35 GMT 2025
|
||||||
stageCount=4
|
stageCount=4
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.11
|
baseVersion=15.11
|
||||||
publishVersion=15.11.3
|
publishVersion=15.11.3
|
||||||
buildCount=11
|
buildCount=15
|
||||||
baseBetaVersion=15.11.4
|
baseBetaVersion=15.11.4
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import java.io.FileNotFoundException;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import cc.winboll.studio.powerbell.dialogs.NetworkBackgroundDialog;
|
||||||
|
|
||||||
public class BackgroundPictureActivity extends WinBoLLActivity implements BackgroundPicturePreviewDialog.IOnRecivedPictureListener {
|
public class BackgroundPictureActivity extends WinBoLLActivity implements BackgroundPicturePreviewDialog.IOnRecivedPictureListener {
|
||||||
|
|
||||||
@@ -589,5 +590,34 @@ public class BackgroundPictureActivity extends WinBoLLActivity implements Backgr
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
setBackgroundColor();
|
setBackgroundColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onNetworkBackgroundDialog(View view) {
|
||||||
|
// 在需要显示对话框的地方(如网络状态监听回调中)
|
||||||
|
NetworkBackgroundDialog dialog = new NetworkBackgroundDialog(this, new NetworkBackgroundDialog.OnDialogClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onConfirm() {
|
||||||
|
ToastUtils.show("onConfirm");
|
||||||
|
// 处理确认逻辑(如允许后台网络使用)
|
||||||
|
LogUtils.d("MainActivity", "用户允许后台网络使用");
|
||||||
|
// 执行具体业务:如开启后台网络请求服务
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
ToastUtils.show("onCancel");
|
||||||
|
// 处理取消逻辑(如禁止后台网络使用)
|
||||||
|
LogUtils.d("MainActivity", "用户禁止后台网络使用");
|
||||||
|
// 执行具体业务:如关闭后台网络请求
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 可选:修改对话框标题和内容(适配自定义场景)
|
||||||
|
dialog.setTitle("网络图片下载对话框");
|
||||||
|
dialog.setContent("是否下载地址中的图片资源,作为应用背景图片?");
|
||||||
|
|
||||||
|
// 显示对话框
|
||||||
|
dialog.show();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
package cc.winboll.studio.powerbell.dialogs;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.appcompat.app.AlertDialog; // AndroidX 对话框
|
||||||
|
import cc.winboll.studio.powerbell.R;
|
||||||
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
|
||||||
|
* @Date 2025/11/19 20:11
|
||||||
|
* @Describe 网络后台使用提示对话框
|
||||||
|
* 继承 AndroidX AlertDialog,绑定自定义布局 dialog_networkbackground.xml
|
||||||
|
*/
|
||||||
|
public class NetworkBackgroundDialog extends AlertDialog {
|
||||||
|
|
||||||
|
// 控件引用
|
||||||
|
private TextView tvTitle;
|
||||||
|
private TextView tvContent;
|
||||||
|
private Button btnCancel;
|
||||||
|
private Button btnConfirm;
|
||||||
|
|
||||||
|
// 按钮点击回调接口(Java7 接口实现)
|
||||||
|
public interface OnDialogClickListener {
|
||||||
|
void onConfirm(); // 确认按钮点击
|
||||||
|
void onCancel(); // 取消按钮点击
|
||||||
|
}
|
||||||
|
|
||||||
|
private OnDialogClickListener listener;
|
||||||
|
|
||||||
|
// Java7 显式构造(必须传入 Context)
|
||||||
|
public NetworkBackgroundDialog(@NonNull Context context) {
|
||||||
|
super(context);
|
||||||
|
initView(); // 初始化布局和控件
|
||||||
|
}
|
||||||
|
|
||||||
|
// 带回调的构造(便于外部处理点击事件)
|
||||||
|
public NetworkBackgroundDialog(@NonNull Context context, OnDialogClickListener listener) {
|
||||||
|
super(context);
|
||||||
|
this.listener = listener;
|
||||||
|
initView();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化布局和控件
|
||||||
|
*/
|
||||||
|
private void initView() {
|
||||||
|
// 加载自定义布局
|
||||||
|
View dialogView = LayoutInflater.from(getContext())
|
||||||
|
.inflate(R.layout.dialog_networkbackground, null);
|
||||||
|
// 设置对话框内容视图
|
||||||
|
setView(dialogView);
|
||||||
|
|
||||||
|
// 绑定控件
|
||||||
|
tvTitle = (TextView) dialogView.findViewById(R.id.tv_dialog_title);
|
||||||
|
tvContent = (TextView) dialogView.findViewById(R.id.tv_dialog_content);
|
||||||
|
btnCancel = (Button) dialogView.findViewById(R.id.btn_cancel);
|
||||||
|
btnConfirm = (Button) dialogView.findViewById(R.id.btn_confirm);
|
||||||
|
|
||||||
|
// 设置按钮点击事件
|
||||||
|
setButtonClickListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置按钮点击监听
|
||||||
|
*/
|
||||||
|
private void setButtonClickListeners() {
|
||||||
|
// 取消按钮:关闭对话框 + 回调外部
|
||||||
|
btnCancel.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
LogUtils.d("NetworkBackgroundDialog", "取消按钮点击");
|
||||||
|
dismiss(); // 关闭对话框
|
||||||
|
if (listener != null) {
|
||||||
|
listener.onCancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 确认按钮:关闭对话框 + 回调外部
|
||||||
|
btnConfirm.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
LogUtils.d("NetworkBackgroundDialog", "确认按钮点击");
|
||||||
|
dismiss(); // 关闭对话框
|
||||||
|
if (listener != null) {
|
||||||
|
listener.onConfirm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对外提供方法:修改对话框标题(灵活适配不同场景)
|
||||||
|
*/
|
||||||
|
public void setTitle(String title) {
|
||||||
|
if (tvTitle != null) {
|
||||||
|
tvTitle.setText(title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对外提供方法:修改对话框内容(灵活适配不同场景)
|
||||||
|
*/
|
||||||
|
public void setContent(String content) {
|
||||||
|
if (tvContent != null) {
|
||||||
|
tvContent.setText(content);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对外提供方法:设置按钮点击回调(替代带参构造)
|
||||||
|
*/
|
||||||
|
public void setOnDialogClickListener(OnDialogClickListener listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:id="@+id/activitybackgroundpictureRelativeLayout1"/>
|
android:id="@+id/activitybackgroundpictureRelativeLayout1"/>
|
||||||
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
@@ -80,6 +79,23 @@
|
|||||||
android:layout_margin="5dp"
|
android:layout_margin="5dp"
|
||||||
android:id="@+id/activitybackgroundpictureAButton2"/>
|
android:id="@+id/activitybackgroundpictureAButton2"/>
|
||||||
|
|
||||||
|
<cc.winboll.studio.libaes.views.AButton
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:text="♾"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:id="@+id/activitybackgroundpictureAButton9"
|
||||||
|
android:onClick="onNetworkBackgroundDialog"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="right">
|
||||||
|
|
||||||
<cc.winboll.studio.libaes.views.AButton
|
<cc.winboll.studio.libaes.views.AButton
|
||||||
android:layout_width="50dp"
|
android:layout_width="50dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="36dp"
|
||||||
@@ -117,5 +133,6 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
60
powerbell/src/main/res/layout/dialog_networkbackground.xml
Normal file
60
powerbell/src/main/res/layout/dialog_networkbackground.xml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<?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="wrap_content"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="@android:color/white"
|
||||||
|
android:padding="20dp"
|
||||||
|
android:radius="12dp"> <!-- 圆角背景(需Android 5.0+,低版本可改用shapedrawable) -->
|
||||||
|
|
||||||
|
<!-- 标题 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_dialog_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="网络后台提示"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<!-- 内容说明 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_dialog_content"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:text="应用正在后台使用网络,是否继续允许?"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textColor="@android:color/darker_gray" />
|
||||||
|
|
||||||
|
<!-- 按钮容器(水平排列) -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="end">
|
||||||
|
|
||||||
|
<!-- 取消按钮 -->
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_cancel"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="取消"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:background="@android:drawable/btn_default_small"
|
||||||
|
android:layout_marginRight="8dp" />
|
||||||
|
|
||||||
|
<!-- 确认按钮 -->
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_confirm"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="允许"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:background="@android:drawable/btn_default_small" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
Reference in New Issue
Block a user