android 书架菜单,Android入门3--做一个书架

修改名称

创建项目的时候,APP的名字取为英文或者拼音,是为了简便,但是显示在界面上,我们当然希望它是中文的。

taoguanstring>

我们要做的很简单,就是在string.xml中,将app_name的内容修改为我们希望的名字:

陶罐PDF阅读器string>

e04b7da4b5466dbab6b305d1334dbccd.png

使用GridView创建书架

创建一个书架类

c9774a017db70e886b0d8d9beb350506.png

在主包目录上单击右键,新建一个Java Class:

54967e0c2db864714746065382c7f54f.png

添加成功后,为其添加一个构造函数,最终代码如下:

public class BookShelf extends GridView {

public BookShelf(Context context, AttributeSet attrs){

super(context,attrs);

}

}

这里对于自己手动添加构造函数我是有一点疑惑的,我不知道能否自动添加,因为对于初学者来说,手动添加稍微有一点点麻烦。

添加书架和图书背景图

将准备好的两张图,加入到drawable目录下:

c6018c6fa6a23fb7d9634e9e461c2918.png

怎么加?我是直接将图复制到drawable文件目录下的,至于还有没有其他方式,我暂时也不清楚。其相对目录如下:

\taoguan\app\src\main\res\drawable

绘制书架背景

1、 首先将背景图加载进来

private Bitmap background;

public BookShelf(Context context, AttributeSet attrs){

super(context,attrs);

background = BitmapFactory.decodeResource(getResources(),

R.drawable.bookshelf_layer_center);

}

2、重写dispatchDraw方法

你只要直接敲方法名,AS会给出接口提示的,直接选择:

@Override

protected void dispatchDraw(Canvas canvas) {

super.dispatchDraw(canvas);

}

3、添加绘制代码

@Override

protected void dispatchDraw(Canvas canvas) {

int count = getChildCount();

int top = count > 0 ? getChildAt(0).getTop() : 0;

int backgroundWidth = background.getWidth();

int backgroundHeight = background.getHeight();

int width = getWidth();

int height = getHeight();

for (int y = top; y < height; y += backgroundHeight) {

for (int x = 0; x < width; x += backgroundWidth) {

canvas.drawBitmap(background, x, y, null);

}

}

super.dispatchDraw(canvas);

}

注意:本段代码来自网络,如有雷同,纯属抄袭。

将书架视图添加到主界面

打开主界面的布局文件,进入设计模式,先删掉helloworld那个文本视图,然后将书架视图拖动到主界面上:

09aeac8f8491524a85b289bdb61d2455.png

注意这里的UI元素比较多,先点击Project进行过滤。

在设计界面,我们已经看到了预览效果,但是有一些错误提示,那是因为没有添加布局约束。

为书架视图添加布局约束

单击预览界面上的书架视图,右侧就会显示添加约束的界面:

007fb3d7d9b64172c59a03c94c43aaa2.png

这里我们希望书架的边沿没有留白,因此我们点击加号,选取数字0.

然后,再选择layout_width和layout_height为match_constraint.如下图:

b211306ed50cb751adb439f03223a2f2.png

设置完成后,可以看到预览效果已经发生了改变:

036eacaf77e688ea20f4b58a5a32370d.png

而模拟器上的运行效果也是类似的,完全符合我们的预期:

e9872bef6c99f0fc0be4cf5d4379456f.png

接下来,我们将在书架上添加图书。下节见。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值