public
class
Brushes
extends
Graphics2DActivity
implements
OnClickListener {
private
Button btnPattern;
private
Button btnGradients;
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.brush);
graphic2dView = (GuidebeeGraphics2DView)
findViewById(R.id.graphics2dview);
btnPattern = (Button) findViewById(R.id.btnPattern);
btnGradients = (Button) findViewById(R.id.btnGradients);
btnPattern.setOnClickListener(
this
);
btnGradients.setOnClickListener(
this
);
}
@Override
protected
void
drawImage() {
drawPatterns();
}
@Override
public
void
onClick(View view) {
if
(view == btnPattern) {
drawPatterns();
}
else
{
drawGradient();
}
graphic2dView.refreshCanvas();
}
private
void
drawPatterns() {
TextureBrush brush1;
TextureBrush brush2;
TextureBrush brush3;
AffineTransform matrix1 =
new
AffineTransform();
AffineTransform matrix2 =
new
AffineTransform();
Bitmap bitmap
= BitmapFactory.decodeResource(getResources(),
R.drawable.brick);
int
[] rgbData =
new
int
[bitmap.getHeight()
* bitmap.getWidth()];
bitmap.getPixels(rgbData,
0
, bitmap.getWidth(),
0
,
0
,
bitmap.getWidth(), bitmap.getHeight());
brush1 =
new
TextureBrush(rgbData, bitmap.getWidth(),
bitmap.getHeight());
bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.bird);
rgbData =
new
int
[bitmap.getHeight() * bitmap.getWidth()];
bitmap.getPixels(rgbData,
0
, bitmap.getWidth(),
0
,
0
,
bitmap.getWidth(), bitmap.getHeight());
brush2 =
new
TextureBrush(rgbData, bitmap.getWidth(),
bitmap.getHeight());
brush3 =
new
TextureBrush(rgbData, bitmap.getWidth(),
bitmap.getHeight(),
127
);
matrix2.translate(
50
,
50
);
graphics2D.clear(Color.WHITE);
graphics2D.setAffineTransform(matrix1);
graphics2D.fillRectangle(brush1,
new
Rectangle(
20
,
50
,
100
,
100
));
graphics2D.fillOval(brush2,
10
,
10
,
80
,
80
);
graphics2D.setAffineTransform(matrix2);
graphics2D.fillOval(brush3,
10
,
10
,
80
,
80
);
}
private
void
drawGradient() {
RadialGradientBrush brush3;
char
[] engText =
"Brush"
.toCharArray();
FontEx font = FontEx.getSystemFont();
int
fontSize =
44
;
int
X =
15
;
int
Y =
50
;
int
[] fractions =
new
int
[] {
13
,
242
};
Color[] colors =
new
Color[] {
new
Color(
0xffff6600
),
new
Color(
0xffffff66
) };
brush1 =
new
LinearGradientBrush(
50
,
50
,
150
,
125
,
fractions, colors,
Brush.NO_CYCLE);
fractions =
new
int
[] {
13
,
128
,
255
};
colors =
new
Color[] {
new
Color(
0xffff6600
),
new
Color(
0xffffff66
),
new
Color(
0xffff6600
) };
brush2 =
new
RadialGradientBrush(
90
,
100
,
50
,
fractions, colors);
fractions =
new
int
[] {
0
,
255
};
colors =
new
Color[] {
new
Color(
0xFFFFFF00
),
new
Color(
0xFF000000
) };
brush3 =
new
RadialGradientBrush(
50
,
50
,
100
,
fractions, colors);
graphics2D.clear(Color.white);
graphics2D.fillRectangle(brush1,
new
Rectangle(
10
,
75
,
120
,
80
));
Pen pen =
new
Pen(brush2,
8
);
graphics2D.drawOval(pen,
20
,
60
,
100
,
50
);
graphics2D.setDefaultBrush(brush3);
pen =
new
Pen(brush2,
2
);
graphics2D.setDefaultPen(pen);
graphics2D.drawChars(font, fontSize, engText,
0
,
engText.length, X, Y);
}
}
相关推荐
在Android平台进行3D图形开发时,OpenGL ES(Open Graphics Library for Embedded Systems)是一项关键的技术。它允许开发者在移动设备上创建复杂的3D图形和动画。在OpenGL ES的环境中,3D坐标变换是构建和操作3D...
《Android简明开发教程》是一份详尽的指南,旨在帮助初学者和有经验的开发者快速掌握Android应用开发。这份教程共分为二十四篇,涵盖了Android开发的基础到高级主题,包括安装Android SDK、创建第一个应用程序、理解...
《Android开发教程CHM》是一本专为Android开发者设计的详尽指南,旨在帮助初学者和有经验的开发者深入理解Android平台的各个方面。这个CHM(Microsoft Compiled HTML Help)文件包含了大量的信息,使得学习和查阅...
### Android OpenGL ES 开发教程详解 #### 概述与历史沿革 OpenGL ES(OpenGL for Embedded Systems)作为OpenGL API的子集,专为移动设备、PDA和游戏主机等嵌入式系统设计,旨在简化3D图形应用的开发流程。自2003...
【Android开发简明教程中文版】是一份专为初学者设计的详细教程,旨在帮助学习者快速掌握Android应用开发的基本技能。这份资料由经验丰富的教师编写,内容全面且深入浅出,适合对移动开发感兴趣的开发者或者在校学生...
Android OpenGL ES 简明开发真正的3D图 Android平台提供的OpenGL ES API主要定义在包android.opengl ,javax.microedition.khronos.egl ,javax.microedition.khronos.opengles ,java.nio 等几个包中
Android OpenGL ES 简明开发教程相关源码添加颜色 简单的上色方法叫做顶点着色(Vertxt coloring),可以使用单色,也可以定义颜色渐变或者使用材质(类同于二维图形中各种Brush类型)。
这个简明开发教程主要参考了Jayway Team Blog中关于OpenGL ES开发的教程,该教程比较通俗易懂,非常适合OpenGL ES的初学者。教程主要通过示例和步骤讲解,旨在帮助没有3D开发经验的程序员快速入门。并且,由于很多...
《GDB简明教程》由张健撰写,主要聚焦于UNIX环境下的一款强大的C/C++调试工具——GDB。GDB,全称为GNU调试器(GNU Debugger),是GNU项目中的一个核心组件,它为程序员提供了全面的功能,以帮助他们在源代码级别上对...
本教程主要介绍了Android APP开发的基本步骤,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,为读者提供了一个简明的Android APP开发入门教程。 一、准备工作 在开始Android APP开发之前,需要准备...
《Java大学简明教程:实例程序设计》是一本面向初学者和在校大学生的Java编程教材。这本书通过丰富的实例,深入浅出地介绍了Java语言的基础知识和应用技巧,旨在帮助读者快速掌握Java编程技能。 首先,从"Java简明...
这个“Android OpenGL ES 简明开发教程相关源码材质渲染”旨在教授如何在Android应用中利用OpenGL ES进行材质渲染,从而创建出丰富的视觉效果。 材质渲染是OpenGL ES中的关键概念,它涉及到物体表面的外观属性,如...
模拟电子技术基础简明教程课件:第十章 直流电源.ppt
- **SDK安装**:Android SDK(Software Development Kit)是开发Android应用的基础工具包,包含了编译代码所需的库文件、文档、示例代码等资源。开发者需从官方渠道下载SDK,并根据操作系统(Windows、macOS或Linux...
JAVA大学简明教程:实例程序设计.pdf
模拟电子技术基础简明教程课件:第一章 半导体器件.ppt
模拟电子技术基础简明教程课件:第四章 功率放大电路.pptx
模拟电子技术基础简明教程课件:第八章 信号处理电路.pptx