Android简单的广告控件View
2012-03-28 00:00
232 查看
在布局文件中引用此View控件即可。
public class GGView extends View {
int COMPONENT_WIDTH; // 该控件宽度
int COMPONENT_HEIGHT; // 该控件高度
boolean initflag = false; // 是否要获取控件的高度和宽度标志
static Bitmap[] bma; // 需要播放的图片的数组
Paint paint; // 画笔
int[] drawablesId; // 图片ID数组
int currIndex = 0; // 图片ID数组下标,根据此变量画图片
boolean workFlag = true; // 播放图片线程标志位
public GGView(Context father, AttributeSet as) { // 构造器
super(father, as);
drawablesId = new int[] { // 初始化图片ID数组
R.drawable.adv1, // 将需要播放的图片ID放于此处即可
R.drawable.adv2, R.drawable.adv3, };
bma = new Bitmap[drawablesId.length]; // 创建存放图片的数组
initBitmaps(); // 调用初始化图片函数,初始化图片数组
paint = new Paint(); // 创建画笔
paint.setFlags(Paint.ANTI_ALIAS_FLAG); // 消除锯齿
new Thread() { // 创建播放图片线程
public void run() {
while (workFlag) {
currIndex = (currIndex + 1) % drawablesId.length;// 改变ID数组下标值
GGView.this.postInvalidate(); // 绘制
try {
Thread.sleep(3000); // 休息三秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start(); // 启动线程
}
public void initBitmaps() { // 初始化图片函数
Resources res = this.getResources(); // 获取Resources对象
for (int i = 0; i < drawablesId.length; i++) {
bma[i] = BitmapFactory.decodeResource(res, drawablesId[i]);
}
}
public void onDraw(Canvas canvas) { // 绘制函数
if (!initflag) { // 第一次绘制时需要获取宽度和高度
COMPONENT_WIDTH = this.getWidth(); // 获取view的宽度
COMPONENT_HEIGHT = this.getHeight(); // 获取view的高度
initflag = true;
}
int picWidth = bma[currIndex].getWidth(); // 获取当前绘制图片的宽度
int picHeight = bma[currIndex].getHeight(); // 获取当前绘制图片的高度
int startX = (COMPONENT_WIDTH - picWidth) / 2; // 得到绘制图片的左上角X坐标
int startY = (COMPONENT_HEIGHT - picHeight) / 2; // 得到绘制图片的左上角Y坐标
canvas.drawARGB(255, 200, 128, 128); // 设置背景色
canvas.drawBitmap(bma[currIndex], startX, startY, paint); // 绘制图片
}
}
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/hopezhangbo/article/details/7356575
public class GGView extends View {
int COMPONENT_WIDTH; // 该控件宽度
int COMPONENT_HEIGHT; // 该控件高度
boolean initflag = false; // 是否要获取控件的高度和宽度标志
static Bitmap[] bma; // 需要播放的图片的数组
Paint paint; // 画笔
int[] drawablesId; // 图片ID数组
int currIndex = 0; // 图片ID数组下标,根据此变量画图片
boolean workFlag = true; // 播放图片线程标志位
public GGView(Context father, AttributeSet as) { // 构造器
super(father, as);
drawablesId = new int[] { // 初始化图片ID数组
R.drawable.adv1, // 将需要播放的图片ID放于此处即可
R.drawable.adv2, R.drawable.adv3, };
bma = new Bitmap[drawablesId.length]; // 创建存放图片的数组
initBitmaps(); // 调用初始化图片函数,初始化图片数组
paint = new Paint(); // 创建画笔
paint.setFlags(Paint.ANTI_ALIAS_FLAG); // 消除锯齿
new Thread() { // 创建播放图片线程
public void run() {
while (workFlag) {
currIndex = (currIndex + 1) % drawablesId.length;// 改变ID数组下标值
GGView.this.postInvalidate(); // 绘制
try {
Thread.sleep(3000); // 休息三秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start(); // 启动线程
}
public void initBitmaps() { // 初始化图片函数
Resources res = this.getResources(); // 获取Resources对象
for (int i = 0; i < drawablesId.length; i++) {
bma[i] = BitmapFactory.decodeResource(res, drawablesId[i]);
}
}
public void onDraw(Canvas canvas) { // 绘制函数
if (!initflag) { // 第一次绘制时需要获取宽度和高度
COMPONENT_WIDTH = this.getWidth(); // 获取view的宽度
COMPONENT_HEIGHT = this.getHeight(); // 获取view的高度
initflag = true;
}
int picWidth = bma[currIndex].getWidth(); // 获取当前绘制图片的宽度
int picHeight = bma[currIndex].getHeight(); // 获取当前绘制图片的高度
int startX = (COMPONENT_WIDTH - picWidth) / 2; // 得到绘制图片的左上角X坐标
int startY = (COMPONENT_HEIGHT - picHeight) / 2; // 得到绘制图片的左上角Y坐标
canvas.drawARGB(255, 200, 128, 128); // 设置背景色
canvas.drawBitmap(bma[currIndex], startX, startY, paint); // 绘制图片
}
}
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/hopezhangbo/article/details/7356575
相关文章推荐
- Android自定义View 简单实现多图片选择控件
- Android笔记--简单的自定义View之自绘控件
- Android 控件:AutoCompleteTextView,MultiAutoCompleteTextView ,TimePicker ,DatePicker,Spinner 的简单使用
- Android控件(View)之TextView, Button, ImageButton, ImageView, CheckBox 简单介绍
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android学习摘记——简单的自定义View(自绘控件)
- android 自定义ViewFlipper轮播广告控件——自定义控件学习(二)
- android之视频播放控件VideoView简单应用
- ClockView——简单的Android时钟控件
- 简单定制Android控件(1) - 自识别url的TextView
- Android学习摘记——简单的自定义View(组合控件)
- Android - 控件(View)之TextView, Button, ImageButton, ImageView, CheckBox, RadioButton, AnalogClock, DigitalClock 的简单介绍
- Day3.2--Android简单UI控件之TextView的高级使用--SpannableString的使用
- android 自定义轮播广告控件ViewPager——自定义控件学习(四)
- Android之RecyclerView控件的简单运用
- android 自定义ViewAnimator文字轮播广告控件——自定义控件学习(三)
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android实现ViewPager广告轮播控件在不同分辨率的屏幕下高度自适应
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android自定义View 简单实现多图片选择控件