Android仿微信发图片的样式,做IM的同学的病有救了

一:前言

最近在搞IM,真的特别痛苦。脑袋大,对于我这种菜鸟来说太难了,比现在社会娶个媳妇还难,硬着头皮搞,终于文字,语音,表情搞完了,开始搞图片,看着微信发的图片跟文字,语音有点区别,因为它并没有外层那个.9图片,倒是自己重绘了了一下图片,让我们来看看微信的发图片的样式!


是吧,美女挺好看吧,我们发现图片有个小三角,话说微信体验是做的真不错,没办法,仿把,在来看看我们的防着做的,同样的美女!


废话不多说,上代码

二:原理

我们做这个效果要用到一个知识点,需要的就是下面的这张图,大家可以看看,但是肯定没有美女好看,凑合着看吧!!!!


我们要用到SrcIn这个效果也就是:取两层绘制交集。显示上层。

三:代码

1:布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#424242"android:orientation="vertical"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="right"android:orientation="horizontal"><ImageViewandroid:id="@+id/right"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dip"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@mipmap/ic_launcher" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="left"android:orientation="horizontal"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@mipmap/ic_launcher" /><ImageViewandroid:id="@+id/left"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dip"/></LinearLayout>
</LinearLayout>
很简单,就是特别随便的一个布局,不说了

2:代码

package com.qingyuan.wewechat;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {ImageView right = (ImageView) findViewById(R.id.right);ImageView left = (ImageView) findViewById(R.id.left);Bitmap bpRight = BitmapFactory.decodeResource(getResources(),R.mipmap.big_meinv);Bitmap bpLeft = BitmapFactory.decodeResource(getResources(),R.mipmap.small_meinv);right.setImageBitmap(canvasTriangle(bpRight, 0));left.setImageBitmap(canvasTriangle(bpLeft,1));}/*** 绘制成微信聊天效果* @param bitmapimg* @param direct* @return*/public static Bitmap canvasTriangle(Bitmap bitmapimg, int direct) {Bitmap output = Bitmap.createBitmap(bitmapimg.getWidth(),bitmapimg.getHeight(), Bitmap.Config.ARGB_4444);Canvas canvas = new Canvas(output);//设置默认背景颜色final int color = 0xff424242;final Paint paint = new Paint();final Rect rect = new Rect(0, 0, bitmapimg.getWidth(),bitmapimg.getHeight());paint.setAntiAlias(true);canvas.drawARGB(0, 0, 0, 0);paint.setColor(color);//右边if (direct == 0) {canvas.drawRect(0, 0, bitmapimg.getWidth() - 15, bitmapimg.getHeight(), paint);Path path = new Path();path.moveTo(bitmapimg.getWidth() - 15, 10);path.lineTo(bitmapimg.getWidth(), 20);path.lineTo(bitmapimg.getWidth() - 15, 30);path.lineTo(bitmapimg.getWidth() - 15, 10);canvas.drawPath(path, paint);}//左边if (direct == 1) {canvas.drawRect(15, 0, bitmapimg.getWidth(), bitmapimg.getHeight(), paint);Path path = new Path();path.moveTo(15, 10);path.lineTo(0, 20);path.lineTo(15, 30);path.lineTo(15, 10);canvas.drawPath(path, paint);}//两层绘制交集。显示上层paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));canvas.drawBitmap(bitmapimg, rect, rect, paint);return output;}
}

代码比较重要的部分我已经注释了,细细体味把

四:心得

   美女挺好看的




菜鸟选手,求大神千万不要喷我 

资源下载




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254644.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

软件压力测试图片60张,看图测压力,你抗压么?

你压力大么&#xff1f;快跟K线君一起来测测&#xff01; 平行线 下图里的横线都是平行的 涉世越深的人&#xff0c;受社会侵蚀越严重 看到的直线越变形 你还是单纯的你吗&#xff1f; 你能看出几条笔直的横线&#xff1f; 我想静静 这是一张静止的图片 你的心理压力越大&#…

网络安全入门学习:社会工程学

在电影《我是谁&#xff1a;没有绝对安全的系统》中&#xff0c;主角本杰明充分利用自己高超的黑客技术&#xff0c;非法入侵国际安全系统&#xff0c;并在最后逃之夭夭。在电影中&#xff0c;有一句经典的台词&#xff1a; 所有黑客手段中最有效的、最伟大的幻想艺术——社会…

《计算机组成原理》唐朔飞 第5章 输入输出系统 - 学习笔记

写在前面的话&#xff1a;此系列文章为笔者学习计算机组成原理时的个人笔记&#xff0c;分享出来与大家学习交流。使用教材为唐朔飞第3版&#xff0c;笔记目录大体与教材相同。 网课 计算机组成原理&#xff08;哈工大刘宏伟&#xff09;135讲&#xff08;全&#xff09;高清_…

easyui 表单提交与图片上传,图片添加、删除

提交表单和图片是web中经常要用到的。我这里用easyui做了一个表单&#xff0c;里面可以上传多张图片&#xff0c;并且可以进行新增和删除。 前端代码如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> …

社会化媒体营销方案简介

最近公司经营走到了死胡同里面&#xff0c;就开始研究运营的营销方案&#xff0c;发现有很多的IT公司都在走社会化营销&#xff0c;感觉这会是以后每个公司都会用到的一种营销策略&#xff01;社会化媒体营销-亦称社会化营销&#xff0c;是利用社会化网络&#xff0c;在线社区&…

神经网络提取图片特征,神经网络算法识别图像

如何用Python和深度神经网络寻找相似图像 代码首先&#xff0c;读入TuriCreate软件包import turicreate as tc我们指定图像所在的文件夹image&#xff0c;让TuriCreate读取所有的图像文件&#xff0c;并且存储到data数据框data tc.image_analysis.load_images(./image/)我们来…

发一张你认为很漂亮的美女照片?

顾锦盒 &#xff0c;INFP, 4w5 565 人赞同 谢谢大家的赞。更新几张。 春风再美也比不过你的笑。 编辑于 2016-04-11 75 条评论 感谢 分享 收藏 • 没有帮助 • 举报 • 作者保留权利 201赞同 反对&#xff0c;不会显示你的姓名 吴名士 &#xff0c;公众号&#xf…

机器学习在社会科学中的应用

本文把目前机器学习技术在社会科学研究中的应用分成三类&#xff1a;第一&#xff0c;数据生成&#xff08;Data Generating Process&#xff09;&#xff1a;机器学习可以帮助学者获得以前很难或无法获得的数据&#xff1b;第二&#xff0c;预测&#xff08;Prediction&#x…

[RUST/腐蚀]Windows-开服服务端下载以及配置

一、前置要求 1.SteamCMD&#xff1a;SteamCMD - Valve Developer Communityhttps://developer.valvesoftware.com/wiki/SteamCMD 2.通过SteamCMD下载RUST/腐蚀服务端。 二、SteamCMD 注意&#xff1a;所有目录均应避免出现中文。 1.建立SteamCMD文件夹&#xff0c;如 D:\st…

chatgpt赋能python:Python中的_--了解这个神秘的下划线

Python中的_ – 了解这个神秘的下划线 Python是一种流行的编程语言&#xff0c;它具有简单易学的语法和强大的功能。一些Python的特殊语法经常会让初学者感到困惑。其中&#xff0c;一个神秘的下划线符号在Python中出现的频率非常高&#xff0c;而且它的含义和使用也非常多样化…

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

文章目录 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 2.查看SSL配置 二、查看证书是否存在 前言 查看MySQL服务器是否启用了SSL连接&#xff0c;并且查看ssl证书是否存在 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 在Linux终端中&#xf…

python向上取整_python向上取整

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import math f = 11.2print math.ceil(f) #向上取整print math.floor(f)#向下取整print round(f) #四舍五入 #这三个函数的返回结果都是浮点型... python中向上…

回归预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-GRU麻雀算法优…

YouTube如何生成双语字幕?

安装YouTube的双语字幕插件即可。Dualsub 到这个网站下载即可&#xff1a; https://chromecj.com/accessibility/2019-08/2848.html&#xff0c;之后简单设置一下就可以实现双语字幕的效果了。

宝藏字幕软件 | PotPlayer

建议用potplayer&#xff0c;字幕和视频放在同一个文件夹&#xff0c;和视频一个名字&#xff08;不包括后缀名&#xff09;&#xff0c;双击视频就自动加载字幕了 起初用电脑自带的视频播放器&#xff0c;导入的字幕为透明色&#xff0c;根本看不清楚&#xff0c;于是我一顿狂…

视频如何加字幕?视频加字幕方法分享!​

视频如何加字幕&#xff1f;在今天的教程中&#xff0c;我们将会学习如何给你的视频添加字幕。字幕是一个非常重要的元素&#xff0c;它不仅可以帮助听力受损或语言障碍的人士理解内容&#xff0c;还可以让你的视频更加易于理解和吸引观众。在本文中&#xff0c;我们将会介绍几…

Youtube——如何将视频中的英文字幕转换成中文字幕

Youtube——如何将视频中的英文字幕转换成中文字幕 1、正常的英文字幕2、点击右下角的设置-Subtitles/CC(2)3、点击Auto-translate4、选择Chinese(Simplified)&#xff0c;此时可以看到已经翻译成中文了 1、正常的英文字幕 2、点击右下角的设置-Subtitles/CC(2) 3、点击Auto-tr…

视频字幕 硬字幕 软字幕 外挂字幕 简介

目录 1.外挂字幕 2.软字幕 3.硬字幕 总结 1.外挂字幕 外挂字幕是一个外部的字幕文件&#xff0c;格式类型一般有srt、vtt、ass等。 播放视频时&#xff0c;把外挂字幕和视频放在同一目录下&#xff0c;并在播放器中选择字幕文件&#xff0c;即可以在视频中看到字幕。 2.软…

制作视频中的字幕很麻烦?一个免费工具帮你搞定!

这段时间在做视频&#xff0c;分享一些制作过程中用到的工具。今天说下如何快速的做字幕。 这个工具是免费的&#xff0c;超级好用。所以其余的不用推荐&#xff0c;直接分享我现在用的就可以了。 网易见外工作台&#xff0c;一个帮你将语音生成字幕的网站&#xff0c;准确率很…