Android⼊门3--做⼀个书架
修改名称
创建项⽬的时候,APP的名字取为英⽂或者拼⾳,是为了简便,但是显⽰在界⾯上,我们当然希望它是中⽂的。
<string name="app_name">taoguan</string>
我们要做的很简单,就是在l中,将app_name的内容修改为我们希望的名字:
<string name="app_name">陶罐PDF阅读器</string>
使⽤GridView创建书架
创建⼀个书架类
在主包⽬录上单击右键,新建⼀个Java Class:
添加成功后,为其添加⼀个构造函数,最终代码如下:
public class BookShelf extends GridView {
public BookShelf(Context context, AttributeSet attrs){
super(context,attrs);
}
}
这⾥对于⾃⼰⼿动添加构造函数我是有⼀点疑惑的,我不知道能否⾃动添加,因为对于初学者来说,⼿动添加稍微有⼀点点⿇烦。添加书架和图书背景图
将准备好的两张图,加⼊到drawable⽬录下:
怎么加?我是直接将图复制到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 = Width();
int backgroundHeight = Height();
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那个⽂本视图,然后将书架视图拖动到主界⾯上:
注意这⾥的UI元素⽐较多,先点击Project进⾏过滤。
在设计界⾯,我们已经看到了预览效果,但是有⼀些错误提⽰,那是因为没有添加布局约束。
为书架视图添加布局约束
单击预览界⾯上的书架视图,右侧就会显⽰添加约束的界⾯:
这⾥我们希望书架的边沿没有留⽩,因此我们点击加号,选取数字0.
然后,再选择layout_width和layout_height为match_constraint.如下图:
设置完成后,可以看到预览效果已经发⽣了改变:
⽽模拟器上的运⾏效果也是类似的,完全符合我们的预期:
接下来,我们将在书架上添加图书。下节见。

更多推荐

添加,书架,视图,看到,布局,效果