Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 可用屏幕的大小大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是Nexus 7 1280×800 android 4.2.2 API 17

我想得到屏幕的大小,将其划分为相同高度和宽度的方形部分.

我正在使用FrameLayout,我的正方形是ImageView的子类.

我这样做

context.getresources()getDisplaymetrics()heightPixels.; —-> 1205
context.getresources()getDisplaymetrics()像素宽度.; ——> 800

我认为1205不是1280,因为屏幕的顶部和底部有两个Android菜单.

我的每个方块都是30×30像素.

要知道我可以绘制多少个正方形作为最大值:

int x = 1205/30;

当我尝试在坐标(x-1)* 30上绘制我的图像时,它会部分地从屏幕上绘制出来.

我怎么知道我的应用程序可以使用的屏幕部分?

我希望我能很好地解释我的问题.

非常感谢.

解决方法

如果所有的方块都在同​​一个ImageView中,那么我猜最简单的方法是创建自己的imageView:
class MyImageView extends ImageView {
    Context context;
    int myWidth = 0;
    int myHeigh = 0;
    int numBoxesX = 0;
    int numBoxesY = 0;

    private final int BoxWidth  = 30;
    private final int BoxHeight = 30;

    ImageView(Context C) {
        super(c);
        context = c;
    }
}

在类中,您重写onSizeChange函数

@Override
protected void onSizeChanged (int w,int h,int oldw,int oldh) {
    super.onSizeChanged(w,h,oldw,oldh);
    myWidth  = w;
    myHeight = h;
    // Set up other things that you work out from the width and height here,such as

    numBoxesX = myWidth / BoxWidth;
    numBoxesY = myHeight / BoxHeight;
}

然后创建一个绘制框的函数

public void drawSubBox(int x,int y,...) {
    // Fail silently if the Box being drawn doesn't exist ...
    if ((x<0) || (x>=numBoxesX)) return;
    if ((y<0) || (y>=numBoxesY)) return;

    // Your code to draw the Box on the screen ...
}

创建此视图后,您可以将其添加到布局中,并像访问任何其他视图一样访问它的功能,包括添加的任何内容以定义子框的大小等等.因此,在此类的活动中使用此布局

@H_89_31@myImageView miv; miv = topView.findViewById("idforMyImageViewSeTinLayoutXMLfile"); miv.drawSubBox(0,...);

大佬总结

以上是大佬教程为你收集整理的android – 可用屏幕的大小全部内容,希望文章能够帮你解决android – 可用屏幕的大小所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。