Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by import android.graphics.Canvas
安卓OCR使用(Google ML Kit)
OCR是一个很常用的功能,Google ML Kit提供了OCR能力,用起来也很简单,本文介绍一下使用方法。 1. 相关概念 名词 概念 解释 TextBlock 块 一个段落 Line 行 一行文本 Element 元素 单词;对汉字来说,类似"开头 (分隔符)中间(分隔符) 结尾"这样含有明显分隔符的才会有多个字在一个Element中,否则就是单个字 Symbol 字符 字母;对汉字来说就是单个字 2.
Android时间日期选择器-CSDN博客
最新推荐文章于 2025-02-18 18:39:25 发布 zs_Dec04 最新推荐文章于 2025-02-18 18:39:25 发布 阅读量1k 收藏 18 点赞数 17 文章标签: android java 前端 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 1.ArrayWheelAdapter public class ArrayWheelAdapter<T> implements WheelAdapter { public static final int DEFAULT_LENGTH = -1; private T items[]; private int length; public ArrayWheelAdapter(T items[], int length) { this.items = items; this.length = length; } public ArrayWheelAdapter(T items[]) { this(items, DEFAULT_LENGTH); }...
Android Studio制作简单拼图小游戏
制作的这个小游戏我称之为速度真男人 这是一个九宫格3x3的还原图片的小游戏,当你运行程序时,计时器显示为0,当你点击第一个碎片开始计时,并且记录你的点击次数,相邻两个碎片可以交换,超过120秒游戏失败 1.class PuzzleView 代码如下: package com.example.gameapplication.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Handler; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; import java.util.ArrayList; import...
Android进阶之路 - 静态会员进度条
年后这个新版本加入了VIP模块,有幸正好由我来负责,可以再积累一下这方面的知识。 那段时间看了一本书,书中说到初级码农的特性之一就是完全集中于某些功能,忽略了了很多成长机会,所以重复性劳作带来的成长值有限,大家应该去接触更广、更深的内容 进度条Blog Android进阶之路 - 静态等级进度条 Android进阶之路 - 静态会员进度条 静态进度条一般只用于实现显示效果,无其他任何交互行为 起初想着自己写一下自定义控件就行,但是通过查询相关控件后发现自己考虑还是有限,所以直接借鉴了早期前辈写的控件,毕竟考虑比我当前全面,功能扩展也多一些 功能分析 要实现类似进度条,起码有以下几点要考虑到 需绘制双进度条:一条 width 默认为控件宽度,用于背景效果;一条 width 需进行计算,实时显示当前进度 进度条计算:计算的规则至少需要当前进度值和最大值,否则无法进行基础计算 双进度条配置不同:对应 Paint 画笔,除大部分配置相同外,颜色至少要不同 padding考虑:有些控件为了显示效果更佳,会加入padding设置,这时候计算width、height时要考虑到padding尺寸...
Android 水波纹扩散效果实现
人生只是一种体验,不必用来演绎完美。 效果图 View源码 package com.android.circlescalebar.view; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; import android.view.animation.LinearInterpolator; import...
Android 识别车牌信息-CSDN博客
打开我们心爱的Android Studio 项目结构 导入需要的资源 gradle implementation("com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3") 我们在需要显示的主活动中写出来我们需要的程序 package com.example.lprec; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Build; import android.os.Bundle; import android.util.AndroidException; import android.util.Log; import android.widget.Button; import...
Android 水印效果-CSDN博客
Android 水印效果 本文主要介绍下android 中水印的实现效果. 实现的方式有多种,就不一一赘述了, 本文就是通过自定义drawable来实现水印.
Android 实现跑马灯效果-CSDN博客
Android 实现跑马灯效果 Android中实现跑马灯效果有多种方式,本篇简单介绍下: 1: TextView属性实现 <TextView android:layout_width="150dp" android:layout_height="wrap_content" android:background="#77000000" android:padding="5dp" android:singleLine="true" android:ellipsize="marquee" android:scrollHorizontally="true" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:text="这是textview的跑马灯效果" android:id="@+id/tv1" /> 这里需要注意下: 需要限制textview的宽度,不能设置为wrap_content...
Android进阶之路 - StaticLayout 绘制文本自动换行
最近在修改 WheelView 自定义控件,因为原始效果单行效果,现在需要支持换行效果,故接触到了 StaticLayout ,先行记录 在 Android自定义控件中,当我们调用 drawText 绘制 Text 时,假设 Text 为超长字符串(文本宽度超过屏幕宽度)也只会显示一行,超出部分会隐藏在屏幕之外… 而 Google 为了适配多行 Text 显示效果,早已提供了 StaticLayout 工具类用于处理文字换行的问题,现在开始一起来看我写个Demo吧! 效果(Demo下载地址) 很多人可能会想到TextView为何支持换行?嗯… 有没有可能TextView内部也使用了 StaticLayout?
SurfaceView的那点事儿-阿里云开发者社区
View之孪生兄弟-SurfaceView Android系统中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是在某些时候却力不从心,特别是进行一些开发的时候。 一般的View通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的时间间隔是16ms。 如果在16ms内View完成了所需要执行的操作,那么用户在视觉上就不会产生卡顿的感觉;而如果执行的逻辑太多,特别是需要频繁刷新的界面,如游戏界面,那么就会不断的阻塞主线程,从而导致界面卡顿。 我们经常在log中可以看到 这种告警产生的很多原因就是在绘制的过程中,处理逻辑太多造成的。 为了避免这种问题,Android提供了SurfaceView来解决这个问题。 SurfaceView和View的区别: View主要适用于主动更行的情况,而SurfaceView适用于被动更新,例如频繁的刷新。 View在主线程中对画面进行,而SurfaceView通常会在一个子线程中进行页面的刷新 View在绘图时没有使用双缓冲机制,而SurfaceView在底层实现了双缓冲机制...
RecyclerView的那点事儿-阿里云开发者社区
RecyclerView ListView的升级版 LinearLayoutManager GridLayoutManager StaggeredGridLayoutManager 定制Item动画,指定Item之间的分隔线 RecyclerView相关的重要类 Adapter ViewHolder LayoutManager ItemDecoration ItemAnimator Android Studio开发工具,在本项目的build.gradle文件中添加 如果是eclipse的话,下载jar包,放到lib下,一般都会自动的build path,检查下即可。 如何下载jar ?
Android Path.quadTo() 方法绘制二次贝塞尔曲线
在 Android 中,可以使用 Path.quadTo() 方法绘制二次贝塞尔曲线。二次贝塞尔曲线由一个起点、一个控制点和一个终点来定义。控制点控制曲线的形状。 以下是一个示例代码,演示了如何在 Canvas 上使用 Path.quadTo() 方法绘制一个二次贝塞尔曲线: import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.view.View; public class MyView extends View { private Paint paint; private Path path; public MyView(Context context) { super(context); paint = new Paint(); paint.setColor(Color.RED);...
android之TextView自由选择复制_android 自由复制文字并弹框-CSDN博客
前言 根据时代进步,那些干产品的也叼砖起来了,今天就遇到一个需求,需要对TextView的文案进行自由选择复制,不怕,我们是勇敢牛牛。 一、效果图 二、实现步骤 public interface OnSelectListener { void onTextSelected(CharSequence content); } 代码如下(示例): public class SelectionInfo { public int mStart; public int mEnd; public String mSelectionContent; } package com.example.merchant.utils; import android.content.Context; import android.text.Layout; import android.widget.TextView; public class TextLayoutUtil { public static int getScreenWidth(Context context) { return...
Android 实战项目分享(一)用Android Studio绘制贝塞尔曲线的艺术之旅
一、项目概述 欢迎来到创意之源!我们精心打造的绘图应用程序将带你进入一个充满艺术和技术的奇妙世界。通过使用Android Studio,我们实现了绘制贝塞尔曲线的功能,让你能够轻松创作出令人惊叹的艺术作品。不论你是热爱绘画的大学生还是渴望学习的艺术爱好者,这个应用程序将为你点燃创作的激情,让你沉浸在绘画的乐趣中。 二、主要技术点 贝塞尔曲线的绘制:我们巧妙地利用Android Studio的绘图功能,实现了贝塞尔曲线的绘制。通过简单的操作,你可以自由操控曲线的形状和曲率,为你的艺术作品注入无限可能。 JSON数据解析:我们应用程序支持JSON数据解析,让你能够轻松处理服务器返回的数据。这样,你可以从服务器获取配置文件等信息,并在绘画过程中灵活应用。 本地文件存取:我们还提供了本地文件存取功能,让你可以保存和管理自己的绘画作品。你可以在应用程序中随时查看、编辑和分享你的艺术杰作。 全屏启动页实现:我们特别优化了应用程序的启动页,实现了无缝过渡,避免了白屏的尴尬。你将享受到完美的用户体验,让你的创作之旅更加流畅自然。...
【安卓app开发一】Android Studio + Bmob后端云实现注册&登录账号、密码找回、意见反馈及数据可视化
目录 前言 概览 本项目尚在开发阶段,主要针对的是安卓用户,通过查阅开发文档以及借鉴其他博主,由于是个人开发,可能会在逻辑会有所缺漏,欢迎各位安卓使用者与开发者进行内测并提交反馈意见给我,进行探讨顺便带带我; 本项目开发主题尚未决定,故本期向各位征集意见,可以通过安装该app进行注册登录,并写下您的想法提交反馈给我,后续将对收集的idea进行整合并决定方向,进行下一步的开发。 ps:保证无病毒与无信息泄露!!!欢迎大家参与 源代码: 链接:https://pan.baidu.com/s/10ECb54ne_9bubuCLWLB-Kw?pwd=v2sh 提取码:v2sh 安卓手机软件安装包: 链接:https://pan.baidu.com/s/1a2H5CKxKvtAjvnyOHvybUQ?pwd=np3w 提取码:np3w 本期主要用到两个工具,Android Studio和Bmob后端云(后续介绍),在安卓客户端注册登陆并提交想法,最终在Bmob后端云中实现数据可视化,主要实现效果如下图所示 Android Studio Bmob后端云 Android...
Android 自定义View之圆形进度条
很多场景下都用到这种进度条,有的还带动画效果, 今天我也来写一个。 写之前先拆解下它的组成: 底层圆形 上层弧形 中间文字 那我们要做的就是: 绘制底层圆形; 在同位置绘制上层弧形,但颜色不同; 在中心点绘制文本,显示进度。 按照这个目标,学习下自定义View的流程。 新建一个类,继承 View ,重写构造函数,如, package com.test.luodemo.customerview; import android.content.Context; import android.util.AttributeSet; import android.view.View; import androidx.annotation.Nullable; public class CircleProgressBar extends View { public CircleProgressBar(Context context) { super(context); } public CircleProgressBar(Context context, @Nullable...
Android Studio实现刮刮卡效果
代码和刮刮乐图片参考网络 实现效果 MainActivity import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } ScratchCardView import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color;...
Android Studio实现图形验证码
源代码 源代码MainActivity 效果图32行需要修改,不修改会报错:需要常量表达式,我的代码已修改 点击后 MainActivity import static com.example.graphicverificationcode.RxCaptcha.TYPE.NUMBER; import android.annotation.SuppressLint; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView tvCode; ImageView ivCode;...
Android 内存分析(java/native heap内存、虚拟内存、处理器内存 )
1.jvm 堆内存(dalvik 堆内存) 不同手机中app进程的 jvm 堆内存是不同的,因厂商在出厂设备时会自定义设置其峰值。比如,在Android Studio 创建模拟器时,会设置jvm heap 默认384m , 如下图所示: 当app 进程中java 层 new 对象(加起来总和)占用的堆内存达到jvm heap 峰值时,就会抛出OOM 。 通过一个案例进一步,了解jvm 堆内存: 通过以下代码,可获取到进程中jvm 堆内存的使用情况: public JSONObject statisticsJVMMemory() { JSONObject json = new JSONObject(); Runtime runtime = Runtime.getRuntime(); long max_memory = runtime.maxMemory() / 1024; long apply_memory = runtime.totalMemory() / 1024; long free_memory = runtime.freeMemory() / 1024; long...
Android 之 Button (按钮)与 ImageButton (图像按钮)
今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到Button 上!我们实际开发中对于Button的,无非是对按钮的几个状态做相应的操作,比如:按钮按下的时候 用一种颜色,弹起又一种颜色,或者按钮不可用的时候一种颜色这样!上述实现无非是通过 StateListDrawable这种Drawable资源来实现,即编写一个drawable的资源文件,就说这么多, 直接开始本节内容~ StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点 < selector >,我们只需要将Button的background属性设置为该drawable资源即可轻松实现,按下 按钮时不同的按钮颜色或背景! 我们可以设置的属性:...
移动应用开发技术--Android Studio实验二--Activity的调用--竹园摘竹子
掌握线性布局和相对布局的使用方法 掌握基本控件的属性功能及使用方法 掌握Activity的数据回传 通过线性布局和相对布局来搭建两个Activity界面,界面效果如下图所示。当点击“去竹园按钮后”,跳转到第二个界面。在第二个界面中,点击界面中间竹子,可统计摘取竹子数并使对应竹子图片消失。点击退出竹园按钮后,返回第一个界面,并将摘取竹子数显示到竹子图片后方。 布局与控件的用法 使用Activity的数据回传实现实验要求 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:http="http://schemas.android.com/apk/res-auto" android:background="@drawable/bg">...
直播平台源代码,Android自定义View实现呼吸灯效果_ITPUB博客
首页 > 应用开发 > Java > 直播平台源代码,Android自定义View实现呼吸灯效果 直播平台源代码,Android自定义View实现呼吸灯效果 自定义View 自定义 BreathView 的Kotlin代码如下: import android.animation.ValueAnimator import android.animation.ValueAnimator.AnimatorUpdateListener import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.util.AttributeSet import android.view.View import android.view.animation.Animation import android.view.animation.LinearInterpolator class...
Android开发应用案例--简易计算器(附完整源码)_android 计算器源码_白天数糖晚上数羊的博客-CSDN博客
Android开发-AS学习(一) Android开发-AS学习(二) 使用android studio开发简易计算器app(完整源码可在博主资源中自行下载) 最终效果: 开发步骤: 创建一个名为calculator的新项目 编写代码 项目目录 MyTextView文件 package com.example.calculator.my_control; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; /* 自定义组件:带有边框的标签 */ public class MyTextView extends...
RXJava3+OKHTTP3+Retrofit2(观察者设计模式)讲解+实战_爱编程的小费同学的博客-CSDN博客
废话不多说,全部代码请拉到最后!!!! retrofit是载体(基于okhttp),rxjava 就是一个实现异步操作的库。 它的简洁的与众不同之处在于,随着程序逻辑变得越来越复杂,它依然能够保持简洁。 就比如我们开了一家披萨店: 你总不能直接把披萨胚直接卖给客人 RX思维分析(完成披萨订单) 被观察者(起点)-------需求(1个或者多个)---------观察者(终点) 就是和卖批萨一样,一条流水线,你开始是个被观察者(披萨胚),观察者(客人)点餐提出需求,通过中间做这些需求(放芝士啥的)最后一个需求结束以后把参数(披萨成品)传给观察者(客人) RX=反应式 reactive x==反应式==响应式编程思维RX == 响应式编程思维 什么是响应式编程?
【Android】Bitmap图片旋转、缩放、翻转等变换(90/100)_android bitmap旋转_lichong951的博客-CSDN博客
自定义BitmapChangeView: package top.lc951.myandroid.views; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; import top.lc951.myandroid.utils.BitmapUtil; public class BitmapChangeView extends View { public static final String TAG = BitmapChangeView.class.getSimpleName(); private float mScaleRatio=1.0f; private float...
AndroidStudio实现在图片上涂鸦并记录涂鸦轨迹_android 涂鸦_天王老子来了我也不改名的博客-CSDN博客
AndroidStudio实现在图片上涂鸦,并保存涂鸦轨迹 AndroidStudio版本:2020.3.1.25 实现效果: 本文通过重写view类,实现在选择的图片上涂鸦的功能,因为项目需要残留了一些多余代码 项目结构: MainActivity为主程序类 HandWrite类为手写类,用于处理各种手势 res/layout/activity_main.xml 为主界面 res/xml/file_path.xml 为图片缓存路径 0.Handwrite类 划重点,此类中重写了view类,画出了手指按下的轨迹,并记录在pointlist中 package com.buildmaterialapplication; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import...
Android SDK: Creating Custom Views
The Android platform provides an extensive range of user interface items that are sufficient for the needs of most apps. However, there may be occasions on which you feel the need to implement a custom user interface for a project you are working on. In this tutorial we will work through the process of creating a custom View.
Android开发之自定义View_android 自定义view_小树熊的博客-CSDN博客
目录 View类是Android中各种组件的基类,如View是ViewGroup基类,表现为显示在屏幕上的各种视图。Android中的UI组件都是由View和ViewGroup组成。 1.1 View的构造函数 //如果View在Java代码中是new出来的,就会调用第一个构造函数 public View(Context context) { throw new RuntimeException("Stub!"); } //如果View是在.xml里面声明的就会调用第二个构造函数 public View(Context context, @Nullable AttributeSet attrs) { throw new RuntimeException("Stub!"); } public View(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { throw new RuntimeException("Stub!"); } public View(Context context,...
CH10-图形图像处理_createbitmap 并向数据中填入颜色值_一条大蟒蛇6666的博客-CSDN博客
掌握常用绘图类的使用 ,能够绘制不同的图形 掌握Matrix类的使用方式 ,能够实现为图片添加特效的功能 掌握动画的使用 ,能够实现补间动画与逐帧动画的效果 图形图像在Android应用中会经常用到,如一些程序的图标、界面的美化等都离不开图形图像。Android系统对图形图像的处理非常强大,对于2D图像它没有沿用Java中的图形处理类,而是使用了自定义的处理类,接下来本章将针对Android常用的绘图类、图形图像特效以及动画进行讲解 。 目标 掌握常用绘图类的使用 ,能够绘制不同的图形 Android中常用的绘图类有Bitmap类、BitmapFactory类、Paint类以及Canvas类,通过对这几个类的使用可以分别实现创建位图、将指定资源解析为位图、创建画笔、绘制画布等功能。 Bitmap类:可以获取图像文件信息,对图像进行剪切、旋转、缩放等操作,并可以指定格式保存图像文件。 BitmapFactory类:是位图工厂,它是一个工具类。 Paint类:代表画笔,用来描述图形的颜色及风格。 Canvas类:代表画布,通过该类提供的方法,可以绘制各种图形。 1.1...
Circular Progress Bar in Android
The article explains designing the custom view in Android along with some useful backgrounds in this regard. Then, a circular progress bar is developed that can be used in different apps as an example custom view. Download app - 1,007 KB Introduction The Android framework provides several default views that are responsible for layouting, measuring, and drawing themselves and their related children. The views can also be responsible to save their states and manipulating their UI properties.
直播平台搭建,自定义气泡效果(BubbleView)_ITPUB博客
直播平台搭建,自定义气泡效果(BubbleView) package com.example.myapplication; import android.content.Context; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.View; import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.Random; public...
直播商城系统源码,快速滑动条/快速滑块/快速滚动条标准实现_ITPUB博客
直播商城系统源码,快速滑动条/快速滑块/快速滚动条标准实现 /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
视频直播网站源码,自定义气泡效果(BubbleView)_ITPUB博客
视频直播网站源码,自定义气泡效果(BubbleView) 代码如下: package com.example.myapplication; import android.content.Context; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.View; import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.Random;...
Android自定义View-撸一个渐变的温度指示器(TmepView) - 品慧电子网
自定义View对需要对整个View体系,事件流程,绘制流程有深刻的理解,能绘制出复杂的图案和动画及交互效果,但万变不离其宗,都是通过确定大小,位置,绘制出相应的形状,由于项目的需要,自己绘制了一个渐变带指示器的温度条,本篇文章尽可能详细的一步一步来实现绘制的效果.(如果对自定义view有理解的,可以直接看最后源码,有详细的注释) 1.继承View 或ViewGroup 2.测量宽高,对应onMeasure来决定View的大小 3.布局(给控件指定位置),对应onLayout决定View在ViewGroup中的位置 4.绘制,对应onDraw,决定View的形状 注意 继承View 1、测量自己的宽高 onMeasure 2、绘制自己 onDraw 继承ViewGroup 1、测量子View和自己 onMeasure 2、布局,给子View设置位置 onLayout 2.1 onMeasure 用来确定当前view的宽高,并根据宽高等计算一些坐标默认的值 这里面需要了解的是MeasureSpec,封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求 .
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with import
Contact import, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack