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的一些简单使用的主要内容,如果未能解决你的问题,请参考以下文章

移动周刊第153期-提高Android代码质量之工具篇

Android移动应用开发之Button按钮与事件

Android移动应用开发之EditText及内容获取

Android移动应用开发之ViewPager

Android移动应用开发之ViewPager

Android移动应用开发之Fragment