Android移动应用开发之ImageViewProgressBar和Notification的一些简单使用
Posted Icy Hunter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android移动应用开发之ImageViewProgressBar和Notification的一些简单使用相关的知识,希望对你有一定的参考价值。
文章目录
主要文件目录
MainActivity:
这里主要用于按钮响应处理和通知处理
package zufe.scq.hunter;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity
private EditText et;
private ProgressBar progressBar;
private ProgressBar progressBar2;
private NotificationManager manager;
private Notification notification;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.pb);
progressBar2 = findViewById(R.id.pb2);
manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// 版本判断
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel channel = new NotificationChannel("hunter", "测试通知",
NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
Intent intent = new Intent(this, NotificationActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
// 通知的设置
notification = new NotificationCompat.Builder(this, "hunter")
// 通知标题
.setContentTitle("官方通知")
.setContentText("AABB")
// 小图标
.setSmallIcon(R.drawable.ic_baseline_account_box_24)
// 大图
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.a))
// 小图标颜色
.setColor(Color.parseColor("#ff0000"))
// 点击后跳转
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.build();
// 隐藏进度条按钮
public void HunterClick(View view)
if(progressBar.getVisibility() == View.GONE)
progressBar.setVisibility(View.VISIBLE);
else
progressBar.setVisibility(View.GONE);
// 模拟下载按钮
public void HunterClick2(View view)
int progress = progressBar2.getProgress();
progress += 10;
progressBar2.setProgress(progress);
// 发送通知按钮
public void sendNotification(View view)
manager.notify(1, notification);
NotificationActivity
用于处理点击通知后的页面展示和信息打印。
package zufe.scq.hunter;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.Nullable;
public class NotificationActivity extends Activity
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
super.onCreate(savedInstanceState);
Log.e("hunter", "onCreate, 进入NotificationActivity" );
a.png
自己准备一张图片
ic_baseline_account_box_24.xml
一张矢量图,用于作通知的小图标
<vector android:height="24dp" android:tint="#43805B"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M3,5v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2L5,3c-1.11,0 -2,0.9 -2,2zM15,9c0,1.66 -1.34,3 -3,3s-3,-1.34 -3,-3 1.34,-3 3,-3 3,1.34 3,3zM6,17c0,-2 4,-3.1 6,-3.1s6,1.1 6,3.1v1L6,18v-1z"/>
</vector>
activity_main
布局中主要的控件
<?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">
<ImageView
android:src="@drawable/a"
android:scaleType="fitCenter"
android:layout_width="200dp"
android:layout_height="200dp"/>
<ProgressBar
android:id="@+id/pb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:onClick="HunterClick"
android:text="显示隐藏进度条"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ProgressBar
android:id="@+id/pb2"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
android:layout_width="300dp"
android:layout_height="wrap_content"/>
<Button
android:text="模拟下载"
android:onClick="HunterClick2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendNotification"
android:text="发送通知"/>
</LinearLayout>
运行
运行app,结果如下:
最上面是张图片
这是个转圈类型的进度条
点击按钮就会隐藏
点击模拟下载进度条会发生改变
点击发送通知,会跳出通知弹框,最左边是小图标,可以设置颜色,不过不能有RGB,最右边是大图,自己设置
点击通知则跳转到另一页面
控制台输出:
说明通知跳转成功。
以上是关于Android移动应用开发之ImageViewProgressBar和Notification的一些简单使用的主要内容,如果未能解决你的问题,请参考以下文章