首页 文章 精选 留言 我的

精选列表

搜索[图片预览],共10003篇文章
优秀的个人博客,低调大师

android 图片处理

package com.android.image.demo;import java.io.InputStream;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.LinearGradient;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PorterDuffXfermode;import android.graphics.Shader;import android.graphics.Typeface;import android.os.Bundle;import android.view.View;public class AlphaBitmap extends Activity { @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(new SampleView(this)); }private static class SampleView extends View {private Bitmap mBitmap;private Bitmap mBitmap2;private Bitmap mBitmap3;private Shader mShader;private static void drawIntoBitmap(Bitmap bm) {float x = bm.getWidth();float y = bm.getHeight(); Canvas c = new Canvas(bm); Paint p = new Paint();/* Paint类的一个边缘光滑的方法,true表示边缘光滑*/ p.setAntiAlias(true); p.setAlpha(0x80);//设置颜色透明度为十六进制80(半透明),0x00全透明,0xFF不透明 /*在位图矩阵区域内画一个相切的圆*/ c.drawCircle(x/2, y/2, x/2, p); p.setAlpha(0x30);/*用指定的PorterDuff模型创建xformode,PorterDuff.Mode.SRC * 表示下面要绘制的文本应在上面绘制的圆的上层*/ p.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC)); p.setTextSize(60);/*Paint.Align 是文本对齐方式的一个枚举类 * CENTER表示文本居中 * LEFT 表示做对齐 * RIGHT 表示右对齐*/ p.setTextAlign(Paint.Align.CENTER);/*FontMetrics是字体度量的类描述了给定文本大小的各种各样的字体度量。 * ascent 表示到基准线之上的距离 * bottom 表示到基准线之下的最大距离,它是最低的字体类型 * descent 表示到基准线之下的距离 * leading 空格字符到基准线的距离,为0 * */ Paint.FontMetrics fm = p.getFontMetrics(); c.drawText("Alpha", x/2, (y-fm.ascent)/2, p); }public SampleView(Context context) {super(context); setFocusable(true);/*取得资源文件的输入流*/ InputStream is = context.getResources() .openRawResource(R.drawable.qq);/*BitmapFactory 是位图的一个工厂类 * 从各种各样的位图对象中创建位图对象,包括文件,流,字节数组。 * */ mBitmap = BitmapFactory.decodeStream(is);/*extractAlpha()位图的这个方法是通过提取 * 了原始位图的透明通道值重建新的位图*/ mBitmap2 = mBitmap.extractAlpha();/*通过位图的宽度和高度已经位图的颜色配置来创建位图 * Bitmap.Config是内部枚举类表示位图的颜色配置 * 它的颜色配置有ALPHA_8、ARGB_4444、ARGB_8888、RGB_565 * */ mBitmap3 = Bitmap.createBitmap(200, 200, Bitmap.Config.ALPHA_8); drawIntoBitmap(mBitmap3);/*LinearGradient类是Shader的一个子类,它实现的是一个线性梯度变化的一个 * 着色器,(0,0)到(100,70)的直线式颜色梯度变化线 * 这个梯度变化是在红绿蓝之间均匀变化的 * Shader.TileMode是超出梯度线的颜色变化模式 *CLAMP 固定shader绘画时颜色超过原始边界(梯度线)的部分颜色用边界颜色绘制。 *REPEAT 在水平和垂直方向重复使用着色器的色相,但边界分明 *MIRROR 在水平和垂直方向重复使用着色器的色相,交换的映像色相使得邻 *近的色相总是一致;颜色关于梯度线镜像 * */ mShader = new LinearGradient(0, 0, 100, 70,new int[] {Color.RED, Color.GREEN, Color.BLUE },null, Shader.TileMode.MIRROR); } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.WHITE); Paint p = new Paint();float y = 10;/*设置画笔颜色为红色*/ p.setColor(Color.RED);/*调用画布的drawBitmap方法在指定的位置用指定的画笔画指定的位图*/ canvas.drawBitmap(mBitmap, 10, y, p);/*设置下一个位图绘制的y坐标值*/ y += mBitmap.getHeight() + 10; canvas.drawBitmap(mBitmap2, 10, y, p); y += mBitmap2.getHeight() + 10;/*设置画笔的着色器*/ p.setShader(mShader); canvas.drawBitmap(mBitmap3, 10, y, p);/*这个类主要装载了绘制直线曲线等的几何路径。*/ Path path = new Path();/*画上面的梯度变化线*/ path.moveTo(0, 0); path.lineTo(100,70); p.setColor(Color.RED);/*Paint.Style画刷的样式枚举类 * STROKE 只绘制笔画形状 * Fill 填充 * FILL_AND_STROKE 既画笔画又填充 * */ p.setStyle(Paint.Style.STROKE);/*用指定的路径和指定的画刷画要求的路径*/ canvas.drawPath(path, p); } } } 本文转自wanqi博客园博客,原文链接http://www.cnblogs.com/wanqieddy/archive/2011/07/20/2111935.html:如需转载请自行联系原作者

优秀的个人博客,低调大师

ArkUI-X 预览版正式开源

OpenHarmony项目群技术指导委员会(以下简称“TSC”)-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X,近期已正式开源。 开发者基于一套主代码,就可以将在OpenHarmony上开发的精美、高性能应用同时运行在Android、iOS等其它OS平台上。 ArkUI-X开源项目地址:https://gitee.com/arkui-x 01 ArkUI-X 诞生背景 随着越来越多设备的智能化,新的场景以及新的需求越来越分散,包括各类屏幕的支持(不同分辨率、尺寸等)、各类交互模式的支持(触控、语音,手势等)、各类不同能力的设备、以及设备之间的连续交互等。对于应用开发者而言,如何满足上述需求开发出精致流畅和一致体验的应用,挑战也越来越大。 基于如上技术挑战,OpenHarmony TSC于2022年4月正式成立跨平台应用开发框架TSG,成员包括华为、阿里、美的等多名资深技术专家。跨平台应用开发框架TSG对业界相关的跨平台应用开发框架所涉及的关键技术进行洞察分析,制定关键的演进策略,并开始构建跨平台应用开发框架项目——ArkUI-X。 02 ArkUI-X 主要介绍 ArkUI-X是基于OpenHarmony官方原生框架ArkUI之上扩展的。ArkUI在架构设计之初就是把跨平台作为一个重要特性考虑在内的,从代码的架构上就对各个平台做了解耦,可以方便地移植到不同的平台。同时ArkUI使用的核心引擎、图形引擎和ArkTS运行时等关键模块都是可以跨平台的。目的是让开发者基于一套主代码,就可以将在OpenHarmony上开发的精美、高性能应用同时可以运行在其它不同的OS平台上。ArkUI-X开源项目的“X”可以理解为“Cross”,将ArkUI扩展到不同的平台上,同时也代表了未来无限的可能。 ArkUI-X的应用工程和最新的OpenHarmony保持一致,当前支持构建OpenHarmony,Android以及iOS的应用程序。ArkUI-X的主要功能如下: 支持最新的Stage开发模型:支持基础的AbilityStage和UIAbility等能力,也支持多module的开发及运行。 支持UI基础组件跨平台,并且支持完整的状态管理能力。 Resource的资源格式也是跨平台的,不需要考虑不同平台下的资源处理,资源配置和访问的方式是保持一致的,并且支持多语言等能力。 对于开发时所使用的API,都是OpenHarmony生态的标准API,在跨平台上,支持标准API按照插件的方式按需打包。 ArkUI-X还提供了轻量的跨语言桥接机制,方便开发者快速扩展对应平台上已有的能力。 ArkUI-X还提供了和OpenHarmony一致的测试框架:测试工程的目录结构,同样也和OpenHarmony的工程保持一致。开发测试用例时,首先需要导入测试框架的API,其中包含了测试脚本的基础流程以及UI模拟操作的API。 03 ArkUI-X 实践案例 华为智慧生活应用内复杂单品详情页,之前在不同平台(Android、iOS)是分别进行开发的,维护成本较高。使用ArkUI-X跨平台项目后,复杂单品详情页代码一次编写支持运行到Android、iOS和HarmonyOS(OpenHarmony商用版)三个平台,新增支持一个平台成本反而下降,可复用跨平台代码占比高达75%,并且有较好的性能体验。真正地做到了“代码一次开发,三个平台部署”。 04 ArkUI-X 开源社区 ArkUI-X是由OpenHarmony TSC-跨平台应用开发框架TSG所孵化的开源项目,更多关于基于ArkUI-X的应用开发手册、框架开发手册、ArkUI-X版本包、ArkUI-X 样例代码、社区Roadmap等信息,可在Gitee ArkUI-X代码仓查阅。 ArkUI-X代码仓地址:https://gitee.com/arkui-x ArkUI-X-v1.0.0-Canary1版本说明地址: https://gitee.com/arkui-x/docs/blob/master/zh-cn/release-notes/ArkUI-X-v1.0.0-canary1.md

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册