安卓如何获取屏幕宽度

安卓如何获取屏幕宽度,第1张

问题一:如何获取Android手机屏幕高宽值 DisplayMetrics metrics = new DisplayMetrics();

objActivitygetWindowManager()getDefaultDisplay()getMetrics(metrics);

M_NSCREENWIDTH = metricswidthPixels; 屏幕宽度

M_NSCREENHEIGHT = metricsheightPixels; 屏幕高度

问题二:android怎么获取屏幕宽度 在一个Activity的onCreate方法中,写入如下代码:

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:

这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

问题三:Android开发 怎样获取屏幕的宽高是多少厘米 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸

下面的代码即可获取屏幕的尺寸。

在一个Activity的onCreate方法中,写入如下代码:

[java] view plain copy print

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:

[html] view plain copy print

>

问题四:Android 如何获得设备触摸板(屏)的长宽 WindowManager wm=(WindowManager)getContext()getSystemService(ContextWINDOW_SERVICE);int width = wmgetDefaultDisplay()getWidth();int height = wmgetDefaultDisplay()getHeight();

问题五:android如何获取屏幕宽度 现在获取屏幕宽度一般都是像素。

可以用以下代码:

WindowManager wm = (WindowManager) getContext()

getSystemService(ContextWINDOW_SERVICE);

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

或者是:

WindowManager wm = thisgetWindowManager();

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

问题六:android怎么获取屏幕的宽度 在一个Activity的onCreate方法中,写入如下代码: DisplayMetrics metric = new DisplayMetrics(); getWindowManager()getDefaultDisplay()getMetrics(metric); int width = metricwidthPixels; 屏幕宽度(像素) int height = metricheightPixels; 屏幕高度(像素) float density = metricdensity; 屏幕密度(075 / 10 / 15) int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下: 这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

问题七:js网页如何获取手机屏幕宽度 ]@]@]

@sssss

var x = navigator;

var w=windowinnerWidth

|| documentdocumentElementclientWidth

|| documentbodyclientWidth;

var h=windowinnerHeight

|| documentdocumentElementclientHeight

|| documentbodyclientHeight;

documentgetElementById(p1)innerHTML=屏幕分辨率:+screenwidth + + screenheight+内部窗口: + w + + h

不知道是不是这个 屏幕分辨率 :pc上的桌面分辨率 。手机上是 一个型号固定的分辨率比如

华为8813的分辨率是480854。。 内部窗口是 改变窗口大小刷新一下就有新的数据

问题八:android编程:android中如何获取屏幕大小 获取屏幕尺寸大小,是程序能在不同大小的手机上有更好的兼容性

WindowManager wm=(WindowManager)getContext()getSystemService(ContextWINDOW_SERVICE);

wwidth=wmgetDefaultDisplay()getWidth();手机屏幕的宽度

hheight=wmgetDefaultDisplay()getHeight();手机屏幕的高度

问题九:android如何获取整个屏幕大小 状态栏的高度:Rect frame = new Rect();

MainActivitythisgetWindow()getDecorView()getWindowVisibleDisplayFrame(frame);

int topHeigh= frametop;

问题十:Android中,BaseAdapter类中怎么获取屏幕宽度 像这种可能多处能用到的我一般在BaseApplication中初始化: 这样不论在哪里都可以调到

public class App extends Application {

private static App mInstance;

@Override

public void onCreate() {

mInstance = this;

}

/

获取当前手机屏幕的宽

/

public static int getPhoneWidth() {

手机屏幕的宽

WindowManager wm = (WindowManager) mInstancegetSystemService(WINDOW_SERVICE);

return wmgetDefaultDisplay()getWidth();

}

/

获取当前手机屏幕的高

/

public static int getPhoneHeight() {

手机屏幕的高

WindowManager wm = (WindowManager) mInstancegetSystemService(WINDOW_SERVICE);

return wmgetDefaultDisplay()getHeight();

}

}

可以通过给控件注册监听视图树的观察者来获取控件的大小

代码如下

public class MainActivity extends Activity {

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

tv = (TextView) findViewById(Ridtext);

tvgetViewTreeObserver()addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

        //在这里获取到宽高

int width = tvgetMeasuredWidth();

int height = tvgetMeasuredHeight();

}

});

}

}

ViewTreeObserver 是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。

而OnGlobalLayoutListener是当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时的回调接口

获取屏幕宽高代码如下

DisplayMetrics dm = getResources()getDisplayMetrics();

int screenWidth = dmwidthPixels;//屏幕宽度

int screenHeight = dmheightPixels;//屏幕高度

两者都获取到了,就可以进行判断了

布局的介绍:

1、在40以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。

2、在22 *** 作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。

3、在40之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)

总之,Android中一共有六种布局。目前推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。

LinearLayout:

(一)、概念:线性布局控制其中的控件或组件横向或纵向排列。不线性布局布局中,每一行或每一列只能放一个控件。并且线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。

线性布局的默认方向是水平方向(Horizontal)。vertical

(二)、LinearLayout的常用属性

1android:orientation 定义布局内控件或组件的排列方式

可选项:vertical 、 horizontal

2android:layout_width 定义控件的宽度

可选项:fill_parent / match_parent/ wrap_content/绝对数值

备注:fill_parent / match_parent的效果完全一致,都是填充整个父控件。但是自22版本开始推荐使用match_parent 。wrap_content指的是该控件的宽度正好包裹内容物。

3android:layout_height 定义控件的高度

可选项:fill_parent / match_parent/ wrap_content/绝对数值

备注:fill_parent / match_parent的效果完全一致,都是高度填充整个父控件。wrap_content指的是该控件的高度正好包裹内容物。

4android:id 设置控件的id。这样就可以在Rjava中自动生成相应的值,在程序中通过findViewById就可以调用。

设置id的格式为:android:id = "@+id/id的名字"

5android:background 设置控件的背景颜色或背景

例如:android:background="#ffffff"

android:background="@drawable/名称"

备注:

颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。

#FFFFFF 代表白色

#000000 黑色

#FFFFFFFF 完全不透明

#00FFFFFF 完全透明

#88FFFFFF 半透明

6android:layout_weight 设置控件的权重。即各控件在水平或者垂直方向上平均分配。

备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

7android:gravity 该属性用来控制该View的内容物的位置。

如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。

如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。

可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。

备注:本属性与android:layout_gravity不同。

8android:layout_gravity 该属性用于设置控件相对于容器的对齐方式。

可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。

这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。

备注:而本属性是android:layout_gravity属性,与 android:gravity 属性不同。

(三)、LinearLayout的特有属性:重新归纳:去除公共属性后的特有属性

1、android:orientation 布局管理器内组件的排列方式

2、android:gravity 设置布局管理器内组件的对齐方式

(四)、 LinearLayout 子元素的特有属性:

1、android:layout_weight 子元素在 LinearLayout 中所占的权重

2、android:layout_gravity 子元素在 LinearLayout 中的对齐方式

RelativeLayout:

(一)、概念:指按着控件之间的相对位置来进行布局。

(二)、RelativeLayout特有属性:

1、android:gravity 设置布局容器内子控件的对齐方式

2、android:ignoreGravity 设置布局管理器内哪个控件不受gravity属性的影响

(三)、RelativeLayout子元素的特有属性:LayoutParams

A、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。

layout_toRightOf 该控件在哪个控件的右侧

layout_toLeftOf 该控件在哪个控件的左侧

layout_above 该控件在哪个控件的上侧

layout_below 该控件在哪个控件的下侧

B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。

layout_alignRight 该控件与哪个控件的右对齐

layout_alignLeft 该控件与哪个控件的左对齐

layout_alignTop 该控件与哪个控件的顶对齐

layout_alignBottom 该控件与哪个控件的底对齐

C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。

layout_alignParentRight 该控件与父布局控件的右对齐吗?

layout_alignParentLeft 该控件与父布局控件的左对齐吗?

layout_alignParentTop 该控件与父布局控件的顶端对齐吗?

layout_alignParentBottom 该控件与父布局控件的底部对齐吗?

layout_centerInParent 该控件位于父布局控件的中心位置吗?

layout_centerVertical 该控件位于父布局控件的垂直中心位置吗?

layout_centerHorizontal 该控件位于父布局控件的水平中心位置吗?

GridLayout:网格布局

(一)、GridLayout布局属性:

1、android:alignmentMode

属性说明:设置布局的对齐模式。可以取以下值:

alignBounds -- 对齐子视图边界。

alignMargins -- 对齐子视图边距。

2、android:columnCount

属性说明:GridLayout的最大列数

3、android:rowCount

属性说明:GridLayout的最大行数

4、android:orientation

属性说明:GridLayout中子元素的布局方向。有以下取值:

horizontal -- 水平布局。

vertical -- 竖直布局。

5、android:columnOrderPreserved

属性说明: 设置该网格布局是否保留列序号。默认是true。

6、android:rowOrderPreserved

属性说明: 设置该网格布局是否保留行序号。默认是true。

7、android:useDefaultMargins

属性说明: 设置GridLayout使用默认的边距。默认值是false。

(二)、GridLayout子元素的属性:

1、android:layout_column

属性说明: 显示该控件的列。例如,android:layout_column="0",表示在第1列显示该控件;android:layout_column="1",表示在第2列显示该控件。

2、android:layout_row

属性说明: 该控件所在行。例如,android:layout_row="0",表示在第1行显示该控件;android:layout_row="1",表示在第2行显示该控件。它和 android:layout_column类似。

3、android:layout_columnSpan

属性说明: 列合并。即该控件所占的列数。例如,android:layout_columnSpan="2",表示该控件占2列。

4、android:layout_rowSpan

属性说明: 行合并。即该控件所占的行数。例如,android:layout_rowSpan="2",表示该控件占2行。

5、android:layout_gravity

属性说明:该控件的布局方式。选项值:

top -- 控件置于容器顶部,不改变控件的大小。

bottom -- 控件置于容器底部,不改变控件的大小。

left -- 控件置于容器左边,不改变控件的大小。

right -- 控件置于容器右边,不改变控件的大小。

center_vertical -- 控件置于容器竖直方向中间,不改变控件的大小。

fill_vertical -- 如果需要,则往竖直方向延伸该控件。

center_horizontal -- 控件置于容器水平方向中间,不改变控件的大小。

fill_horizontal -- 如果需要,则往水平方向延伸该控件。

center -- 控件置于容器中间,不改变控件的大小。

fill -- 如果需要,则往水平、竖直方向延伸该控件。

clip_vertical -- 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。

clip_horizontal -- 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是 right的,则剪切该控件的左边。

start -- 控件置于容器的起始处,不改变控件的大小。

end -- 控件置于容器的结束处,不改变控件的大小。

以上就是关于安卓如何获取屏幕宽度全部的内容,包括:安卓如何获取屏幕宽度、android如何判断控件的大小大于屏幕的宽度、求助:android:layout等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9690278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存