首页 文章 精选 留言 我的

精选列表

搜索[图片显示],共10008篇文章
优秀的个人博客,低调大师

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:如需转载请自行联系原作者

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

eclipse 关于*.properties 文件 中文显示为Unicode,无法显示中文的问题(Properties Editor)

只要使用Properties Editor编辑*.properties 文件 即可:一、以下为在线安装Properties Editor的过程1、在eclipse下 "帮助"(help)--- 2、Install New Software3、Add4、Name:Properties Editor Location:http://propedit.sourceforge.jp/eclipse/updates/ 5、OK6、Finish二、将Properties Editor甚至为此类文件的默认编辑器1、Window--->Perference-->General-->Editors-->File Association ![image](https://yqfile.alicdn.com/af87238c739b5cee76ed0948799e78904e322a35.png) 2、效果如下 Eclipse Java EE IDE for Web Developers.Version: Oxygen.2 Release (4.7.2)Build id: 20171218-0600

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

Android开发 - 设置DialogFragment全屏显示

默认的DialogFragment并不是全屏,但有些需求需要我们将对话框设置为全屏(内容全屏),Android并没有提供直接的API,通过其它不同的方法设置全屏在不同的机型上总有一些诡异的问题,经过测试,下面的方法可以实现各个机型的全屏。测试 SDK Version = 28 覆写Fragment的onStart()方法: @Override public void onStart() { super.onStart(); Dialog dialog = getDialog(); if (dialog != null) { Window window = dialog.getWindow(); if (window != null) { int width = ViewGroup.LayoutParams.MATCH_PARENT; int height = ViewGroup.LayoutParams.MATCH_PARENT; window.setLayout(width, height); } } } } 上面的方法可以成功设置Dialog为全屏,但是如果在全屏的Dialog顶部有View的情况下,在某些机型View会被状态栏遮住(比如三星S9),这时需要一些特殊的设置来处理,可以参考我的文章:解决DialogFragment在全屏时View被状态栏遮住的问题 本文原始地址,如有更多疑问,请参考我的其它Android相关博客:我的博客地址

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

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

用户登录
用户注册