piaoxusi0005 2023-05-21 12:22 采纳率: 85%
浏览 7
已结题

android的短信图标怎么修改

img


我想把这个图标换成我自己的头像,该怎么自定义图标,模拟着玩也可以

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-21 14:04
    关注
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/738429
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Android素描算法及实现手指在图片上左右滑动调节图片透明度,最终实现类似调节素描浓度的效果
    • 你还可以看下android参考手册中的 android Conference 代表一个电话会议,可以包含任何数量的连接对象。
    • 除此之外, 这篇博客: Android手机适配问题怎么处理,都有什么方案。中的 那么该如何解决控件的屏幕尺寸和屏幕密度的适配问题呢? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 从上面可以看出:

      • 因为屏幕密度(分辨率)不一样,所以不能用固定的px
      • 因为屏幕宽度不一样,所以要小心的用dp

      因为本质上是希望使得布局组件在不同屏幕密度上显示相同的像素效果,那么,之前是绕了个弯使用dp解决这个问题,那么到底能不能直接用px解决呢?

      即根据不同屏幕密度,控件选择对应的像素值大小

      接下来介绍一种方法:百分比适配方法,步骤如下:

      1. 以某一分辨率为基准,生成所有分辨率对应像素数列表
      2. 将生成像素数列表存放在res目录下对应的values文件下
      3. 根据UI设计师给出设计图上的尺寸,找到对应像素数的单位,然后设置给控件即可
    • 您还可以看一下 赵龙老师的Android 企业应用系列开发教程课程中的 线性布局实现 输入用户名 与密码的基本排版功能小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      我可以提供如下的解决方案:

      1. 自定义 Android 短信图标的简单方法如下:

      在应用的 AndroidManifest.xml 文件中加入如下语句:

      <activity
                  android:name="MainActivity"
                  ...
                  android:icon="@drawable/my_icon"/>
      

      其中 drawable/my_icon 为你想要设置的图标的名称。

      1. 如果你需要更加复杂的处理方法,则可以自定义短信应用来实现:

      (1)创建一个新的图标布局,比如 res/layout/my_icon.xml ,并在其中定义布局以及图标的显示:

      <?xml version="1.0" encoding="utf-8"?>
      <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/icon"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/my_icon_image" />
      

      其中 my_icon_image 为你想要设置的图标的名称。

      (2)在应用的启动界面或者启动Activity中,将该布局和主要的短信应用activity关联起来:

      Intent intent = new Intent(Intent.ACTION_MAIN);
      intent.addCategory(Intent.CATEGORY_LAUNCHER);
      intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");
      intent.putExtra("customView", true);
      intent.putExtra("customViewId", R.layout.my_icon);
      startActivity(intent);
      

      其中 "com.android.mms" 为短信应用的包名, "com.android.mms.ui.ConversationList"为类名,这里需要使用您自己的短信应用包名和类名。

      这样就可以在短信应用的启动界面上显示自定义的图标了。

      注意:这种做法并不推荐,因为在Android 5.0以上,Google已经禁止了利用反编译机制来修改系统应用的内部逻辑。

      1. 另外,如果你需要在短信通知栏上显示自定义的图标,则可以通过NotificationManager来实现:

      (1)在应用中将你想要显示的图标资源文件放在 res/drawable 目录下。

      (2)在代码中创建一个新的Notification对象,并设置它的图标和其它属性:

      NotificationManager notificationManager =
                  (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
          Notification notification = new Notification(R.drawable.your_icon, "New Message", System.currentTimeMillis());
          notification.defaults |= Notification.DEFAULT_ALL;
          notificationManager.notify(0, notification);
      

      其中 R.drawable.your_icon 为你在步骤(1)中放置的图标的资源文件。

      由于通知栏只允许显示来自系统或当前应用的图标,因此只有当这个Notification对象在应用的前台时,或者当这个Notification对象已经被添加到通知栏时,才能够在通知栏上显示自定义的图标。

      希望这些方案对你有所帮助!

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月8日
  • 创建了问题 5月21日