基于安卓,点击状态栏图标显示笔记标签的代码
时间: 2024-01-01 09:05:53 浏览: 76
笔记本电池图标下载
以下是基于安卓的点击状态栏图标显示笔记标签的代码:
首先,在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
接着,在 MainActivity.java 文件中添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_NOTE_TAG = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建状态栏通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_note)
.setContentTitle("笔记标签")
.setContentText("点击查看笔记标签")
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true);
Intent intent = new Intent(this, NoteTagActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, REQUEST_CODE_NOTE_TAG, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(1, builder.build());
}
}
```
上述代码中,我们创建了一个状态栏通知,当用户点击通知时,会启动 NoteTagActivity。
接着,在 NoteTagActivity.java 文件中添加以下代码:
```java
public class NoteTagActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_tag);
// 显示笔记标签
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.START;
params.x = 0;
params.y = 0;
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.layout_note_tag, null);
TextView tvNoteTag = view.findViewById(R.id.tv_note_tag);
tvNoteTag.setText("这是一个笔记标签");
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(view, params);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 移除笔记标签
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
View view = getWindow().getDecorView();
windowManager.removeView(view);
}
}
```
上述代码中,我们创建了一个 NoteTagActivity,用于显示笔记标签。在 onCreate() 方法中,我们创建了一个悬浮窗口,并将笔记标签添加到悬浮窗口中。在 onDestroy() 方法中,我们移除悬浮窗口。
最后,在 layout_note_tag.xml 文件中添加以下代码:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_note_tag"
android:padding="8dp">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/ic_note"
android:tint="@color/colorWhite"
android:contentDescription="笔记图标"/>
<TextView
android:id="@+id/tv_note_tag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorWhite"
android:text="笔记标签"/>
</LinearLayout>
```
上述代码中,我们创建了一个笔记标签的布局,包含一个图标和一个文本。我们使用 bg_note_tag.xml 文件作为背景,使笔记标签看起来更加美观。
以上就是基于安卓的点击状态栏图标显示笔记标签的代码。运行程序后,当用户点击状态栏图标时,会显示一个笔记标签。
阅读全文