android获取屏幕宽度_js获取手机屏幕宽度

莫娜号 1

android获取屏幕的分辨率方法有哪几种?

获取屏幕分辨率的方式drawable-mdpi/如下:

android获取屏幕宽度_js获取手机屏幕宽度android获取屏幕宽度_js获取手机屏幕宽度


android获取屏幕宽度_js获取手机屏幕宽度


一、在activity中

1、DisplayMetrics dm = getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

2、DispDisplayMetrics dm = new DisplayMetrics();layMetrics dm = new DisplayMetrics();

this.getWindowMar().getDefaultDisplay().getMetrics(dm);

int screenWidth = dm.widthPixels;

二、在serv中

dm = getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

Android是一种基于Linux的自由及开放源代码的作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟及开发。尚未有统一中文名称,大陆地区较多人使用“安卓”或“安致”。Android作系统最初由Andy Rubin开发,主要支持手机。

如何处理与Android XLARGE屏幕

res/

一、关于布局适用于区分不同的像素密度。配建议 1、不要使用布局 2、尽量使用match_parent 而不是fill_parent 。 3、能够使用权重的地方尽量使用权重(android:layout_weight) 4、如果是纯色背景,尽量使用android的shape 自定义。 5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配10801800的屏幕(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分辨率相同的布局,如果不存在则换使用默认的layout下的布局。 二、术语和概念 四种屏幕尺寸分类:: all, normal, large, and xlarge 四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high) 需要注意的是: xhdpi是从 Android 2.2 (API Ll 8)才开始增加的分类. xlarge是从Android 2.3 (API Ll 9)才开始增加的分类. DPI是“dot per inch”的缩写,每英寸像素数。 一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。 三、如何做到自适应屏幕大小呢? 1)界面布局方面 需要根据物理尺寸的大小准备5套布局,layout(放一些通用布局xml文件,比如界面中顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),layout-all(屏幕尺寸小于3英寸左右的布局),layout-normal(屏幕尺寸小于4.5英寸左右),layout-large(4英寸-7英寸之间),layout-xlarge(7-10英寸之间) 2)资源方面 需要根据dpi值准备5套资源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi Android有个自动匹配机制去选择对应的布局和资源 四、两种获取屏幕分辨率信息的方法: DisplayMetrics metrics = new DisplayMetrics(); Display display = activity.getWindowMar().getDefaultDisplay(); display.getMetrics(metrics); //这里得到的像素值是设备像素dp //DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。 不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。

android popupWindow 中宽度莫名很大,求帮助

然后在math_parent: 根据父控件的尺寸大小设置控件的尺寸 res 下建立

android中gridView怎么在代码里动态设置每一列的宽度??

3. 在strings.xml中,增加如下粗体字代码。这些代码,将会被Spinner使用:

1.android:layout_height="wrap_content"

2.layout.addView(progressBar, new LayoutParam(Lay格式为 swdpoutParam.FILL_PARENT, LayoutParam.FILL_PARENT));

参考看看就知道了吧

如何动态编辑fragment的高度,宽度和margin

wrap_content: 根据控件的内容设置控件的尺寸

在实际工作中,我们经常需要在程序里面用代码来控制一些组件的宽度和高度,以适应不同分辨率的屏幕。尽管有不同的Layout供我们使用,但很多时候需要通过用代码设定组件的大小,以达到良好的界面视觉效果。

Code)是网络的全球编号。其中MCC指码,MNC指网络号。

注意:组件和控件是有区别的。组件对应的英文是component,控件对应的英文是control;控件是带有界面的,组件则未必有界面;控件属于组件,可以说它是带有界面的组件。比如Button有界面,因此可以说它是控件,也可以说它是组件。LinearLayout没有界面,因此它不能算是控件,但它却是组件。本文中由于涉及了带有和不带有界面的组件,因此,用组件泛指这两者。

有些组件,比如Button,可以在程序中用setWidth和setHeight来设定其大小,这是非常方便的。但有些组件却没有这两个设定大小的方法,比如ImageButton、Spinner以及LinearLayout等等,那么如何在程序中根据需要,动态地设定他们的大小呢?下面就用实际的例子来说明这个问题。

1. 首先创建一个Android项目:

2. 将文件magnifier.png拖入到项目的res/drawable-mdpi文件夹下。mangifier.png的内容如下:

请选择城市

<>

<>上海

<>

<>哈尔滨

<>符拉迪沃斯托克

4. 修改main.xml,使之如下:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="/uploads/5b62f531ec5aa22b51363277882d8b47.png" data-original="@drawable/magnifier"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:entries="@array/cities"

android:prompt="@string/spin_prompt"

/>

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

android:orientation="horizontal"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:grity="left"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello"

/>

android:orientation="horizontal"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Android"

/>

5. 运行本项目,得到的结果如下:

现在定,我们要:

a) 增加Button的高度

b) 增加ImageButton的宽度和高度

c) 增加Spinner的宽度

d) 将包含Hello的EditText靠左,包含Android的EditText靠右

6. 修改AdjustControlSize.ja的代码,使之如下:

public class AdjustControlSize extends Activity

{private Button btn;

private ImageButton imagebtn;

private Spinner sp;

private LinearLayout ll_left;

private LinearLayout ll_right;

private DisplayMetrics dm;

{super.onCreate(sedInstanceState);

setContentView(R.layout.main);

// 获取屏幕尺寸

dm = new DisplayMetrics();

getWindowMar().getDefaultDisplay().getMetrics(dm);

btn = (Button)findViewById(R.id.btn);

sp =(Spinner)findViewById(R.id.sp);

ll_left = (LinearLayout)findViewById(R.id.ll_left);

ll_right = (LinearLayout)findViewById(R.id.ll_right);

// 增加Button的高度,可以很方面地通过setHeight方法来实现。

btn.setHeight(80);

// 但如果要想在代码中改变某些组件,比如ImageButton、Spinner以及LinearLayout,

// 用setHeight或者setWidth的方式就不行了,因为这些组件中,没有提供这两个方法。

// 为此,可以通过LayoutParams这个类(这里我们用LinearLayout.LayoutParams)来实现这一点。

// 改变imagebtn的宽度和高度均为屏幕宽度的1/4

LinearLayout.LayoutParams imagebtn_params = newLinearLayout.LayoutParams(

LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

imagebtn_params.height = dm.widthPixels / 4;

imagebtn_params.width = dm.widthPixels / 4;

imagebtn.setLayoutParams(imagebtn_params);

// 设定sp的宽度为屏幕宽度的2/3

LinearLayout.LayoutParams sp_params = new LinearLayout.LayoutParams(

LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

sp_params.width = dm.widthPixels 2 / 3;

sp.setLayoutParams(sp_params);

// 让两个EditText分别处于屏幕的左右两端。

// 在main.xml中,两个EditText分别处于ll_left和ll_right这两个LinearLayout中,且

// 处于ll_left的grity属性为left,即置于其中的组件靠左;处于ll_right的grity

// 属性为right,即置于其中的组件靠右。但是由于这两个LinearLayout的宽度属性均为

// wrap_content,所以它们靠在一起了,由此导致了两个EditText也靠在一起。

// 会分别处于屏幕的两端。

LinearLayout.LayoutParams ll_params = new LinearLayout.LayoutParams(

LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

ll_params.width = dm.widthPixels / 2;

ll_right.setLayoutParams(ll_params);

}}

关于Android resource 中 layout-sw720dp,720dp是代表分辨率还是计算出来的物理宽度。

android:grity="right关键字: 屏幕适配 px dp dpi sp large限定符 .9.png"

这里的sw代表allwidth的意思,当你所有屏幕的最小宽度都大于720dp时,屏幕就会自动到带sw720dp后缀的资源文件里去寻找相关资源文件,这里的最小宽度是指屏幕宽高的较小值,每个屏幕都是固定的,不会随着屏幕横向纵向改变而改变。

android 如何自动调整button宽度

解决方案-支持各种屏幕密度

权重 layout-weight,搞几个看不见的布局布满整个宽度

// 如果,我们把ll_left和ll_right的宽度能够设定为屏幕宽度的一半,那么两个EditText就

获取屏幕宽度X,然后setwidth(X/N)

wrapcontent 然后paddingright paadingleft。。。

使用LinearLayout,然后用权重weight来做吧

android自定义view如何获取父容器赐予的宽度和高度

public void onCreate(Bundle sedInstanceState)

自定义View,想要自定义给定宽和高,你要写自定义属性,然后在xml文件中指定宽高才会有效,同时当给定的宽和高的值是wrap_content 或 fill_parent 这类的,这时需要在自定义View中重写onMeasure方法,进行控件的宽高测量。

imagebtn = (ImageButton)findViewById(R.id.image_btn);

不同版本的android如何控制对话框宽度

@Ov你可以即时的计算你的popupwindow所占空间 比如你现在的初始化传参是300pxXpx 即时的dp转成px / 将dip或dp值转换为px值,保证尺寸大小不变 @param dipValue @param scale (DisplayMetrics类中属性density) @return / public static int dip2px(float dipValue, float scale) { return (int) (dipValue scale + 0.5f); } public static DisplayMetrics getMetrics(Activity activity) { DisplayMetrics metrics = new DisplayMetrics(); Display display = activity.getWindowMar().getDefaultDisplay(); display.getMetrics(metrics); return metrics; } 再调用的话就是new PopupWindow(findViewById(R.id.mainlayout), dip2px(300,getMetrics(youractivity)), dip2px(,getMetrics(youractivity))); 还有 如果是在平板上面显示 这种方法也会失去效果 如果你想在高分辨率下 显示 就得传更高的值才有相同的显示效果 下面是判断是否是平板的方法 private boolean isPad() { WindowMar wm = (WindowMar) getSystemServ(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); // 屏幕宽度 float screenWidth = display.getWidth(); // 屏幕高度 float screenHeight = display.getHeight(); DisplayMetrics dm = new DisplayMetrics(); display.getMetrics(dm); double x = Math.pow(dm.widthPixels / dm.xdpi, 2); double y = Math.pow(dm.heightPixels / dm.ydpi, 2); // 屏幕尺寸 double screenInches = Math.sqrt(x + y); // 大于6尺寸则为Pad if (screenInches >= 6.0) { return true; } return false; }erride

1 如果只按你的要求来使用dip, 可以在配置文件中使用dimens.xml 在里边配置数值

自定义一个对话框类,继承android 对话框,重写对话框的样式,里面可以设置弹出时的视图view,可以写成固定宽度,也可以根据手机获取屏幕的宽度,来计算显示占屏幕的份额。

对话框的宽度跟android版本没关系。只跟不同设备的分辨率有关系吧。但是如果你设置好了不同分辨率的宽度的话,他就不会变了

android自定义view 如何适应分辨率

4、Android提供3种方式处理屏幕自适应

4.1预缩放的资源(基于尺寸和密度去寻找)

1)如果找到相应的尺寸和密度,则利用这些进行无缩放显示。

2)如果没法找到相应的尺寸,而找到密度,则认为该尺寸为 "medium",利用缩放显示这个。

3)如果都无法匹配,则使用默认进行缩放显示。默认默认标配 "medium" (160)。

4.2自动缩放的像素尺寸和坐标(密度兼容)

1)如果应用程序不支持不同密度android:anyDensity="false",系统自动缩放尺寸和这个的坐标。

2)对于预缩放的资源,当androi一般情况,我们都是设置要进行比例分配的方向的宽度为0dp,然后再用权重进行分配。如下:d:anyDensity="false",也不生效。

3)android:anyDensity="false",只对密度兼容起作用,尺寸兼容没效果

4.3兼容更大的屏幕和尺寸(尺寸兼容)

1)对于你在声明不支持的大屏幕,而这个屏幕尺寸是normal的话,系统使用尺寸为 ("normal")和密度为("medium)显示。

2.)对于你在声明不支持的大屏幕,而这个屏幕尺寸是larger的话,系统同样使用尺寸为("normal")和密度为("medium)显示,

不过会出现一层黑色的背景。

5、Android系统自动适配技巧

Android系统采用下面两种方法来实现应用的自动适配:

1)布局文件中定义长度的时候,使用wrap_content,fill_parent, 或者dp 进行描述,这样可以保证在屏幕上面展示的时候有合适的大小

2)为不同屏幕密度的手机,提供不同的位图资源,可以使得界面清晰无缩放。

对应bitmap 资源来说,自动的缩放有时会造成放大缩小后的图像变得模糊不清,这是就需要应用为不同屏幕密度配置提供不同的资源:为高密度的屏幕提供高清晰度的图像等。

3)不要使用AbsoluteLayout

4)像素单位都使用DIP,文本单位使用SP

6、在代码中获取屏幕像素、屏幕密度

DisplayMetrics metric = new DisplayMetrics();

getWindowMar().getDefaultDisplay().getMetrics(metric);

int width = metric.widthPixels; // 屏幕宽度(像素)

int height = metric.heightPixels; // 屏幕高度(像素)

float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)

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

最后修改时间:
闲鱼卖货平台怎么收费 闲鱼卖货流程,钱怎么到账
上一篇
关于言的四字成语开头 言开头的四字词
下一篇

相关文章