博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
andorid界面布局学习 之 使用代码实现界面布局
阅读量:5139 次
发布时间:2019-06-13

本文共 1903 字,大约阅读时间需要 6 分钟。

 

(1)目的

绘制不等数量的小图标到界面中

(2)效果图

(3)实现介绍

  • 和使用xml布局类似:我们需要有装载控件的容器(ViewGroup)和要显示的控件view
  • 然后在将view添加到viewGroup中,将viewGroup通过Activity的setContentView方法设置到显示界面。
  • 如果通过addView方法将view添加到viewGroup中,则应在viewGroup的onLayout方法中对子控件的位置进行设置
  • 最后提醒一下自己:viewGroup嵌套viewGroup

(4)代码

viewGroup相关实现代码:

View Code
//viewGroup类相关代码 public class MyLayerImageIcon extends ViewGroup{
private int mHeight, mWidth; public MyLayerImageIcon(Context context, int nHeight, int nWidth) {
super(context); mHeight = nHeight; mWidth = nWidth; } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) {
int nCount = getChildCount(); int nTop = 0; int nBottom = 0; int nLeft = 0; int nRight = 0; for(int i=0; i

view相关实现代码:

View Code
public class ImageIconItem extends ImageView{
private float mTop, mBottom, mLeft, mRight; private int mWidth, mHeight; private Point mPoint; public ImageIconItem(Context context) {
super(context); this.setTag(222); // TODO Auto-generated constructor stub } public void setPosition(Point position, int resId){
Resources res = getResources();
     //获得资源图片的大小,也可以直接传进来图片的大小提高效率         BitmapDrawable bitmapDrawable = (BitmapDrawable) res.getDrawable(resId);         Bitmap bmBitmap = bitmapDrawable.getBitmap();         mWidth = bmBitmap.getWidth();         mHeight = bmBitmap.getHeight();         mPoint = position;         //计算图片放置的位置         mTop     = position.y - (mHeight/2) ;         mBottom = position.y + (mHeight/2) ;         mLeft     = position.x - (mWidth/2)  ;         mRight    = position.x + (mWidth/2)  ;     } public float getmBottom() {
return mBottom; } public float getmTop() {
return mTop; } public float getmLeft() {
return mLeft; } public float getmRight() {
return mRight; } }

主要代码已贴上,欢迎讨论--博客园(junqinghaha)

转载于:https://www.cnblogs.com/junqinghaha/archive/2012/01/11/2319566.html

你可能感兴趣的文章
Node.js 连接 MySQL
查看>>
那些年,那些书
查看>>
注解小结
查看>>
java代码编译与C/C++代码编译的区别
查看>>
Bitmap 算法
查看>>
转载 C#文件中GetCommandLineArgs()
查看>>
list control控件的一些操作
查看>>
LVM快照(snapshot)备份
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
npm 常用指令
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
HashPump用法
查看>>
cuda基础
查看>>
Vue安装准备工作
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>