Articles of layoutparams

Android:更改由WindowManager添加的View的LayoutParams

我已经覆盖由WindowManagerpipe理的View ,就像在这个问题 。 简而言之,它看起来像这样: WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); my_view_layout_params = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, PixelFormat.TRANSLUCENT); wm.addView(my_view, my_view_layout_params); 它的工作原理,但如果我需要更改布局参数,我需要删除视图并再次添加,如下所示: wm.removeView(my_view); wm.addView(my_view, my_view_layout_params); 看起来不是很漂亮 我试图做my_view.setLayoutParams(my_view_layout_params) ,但不幸的是它不工作。 我该怎么做?

Android WindowManager TYPE_SYSTEM_ALERT布局触摸

我的应用程序在某些时候显示一个button作为TYPE_SYSTEM_ALERT用户,我试图让用户移动它。 触摸和移动动作确实注册到下面的代码,但button不移动。 我错过了什么? //create button mbtRec = new Button(ACR.getContext()); mbtRec.setText(R.string.start_recording); mbtRec.setTypeface(null, Typeface.BOLD); mbtRec.setBackgroundColor(Color.RED); //mbtRec.setBackgroundResource(R.drawable.ic_launcher); mbtRec.setOnClickListener(recButtonOnClickListener); mbtRec.setOnTouchListener(recButtonOnTouchListener); //create layout params recButtonLayoutParams = new WindowManager.LayoutParams(); recButtonLayoutParams.flags = WindowManager.LayoutParams.FORMAT_CHANGED; //8 recButtonLayoutParams.format = PixelFormat.RGBA_8888; //PixelFormat.TRANSLUCENT recButtonLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; recButtonLayoutParams.gravity = Gravity.TOP | Gravity.CENTER; //51 recButtonLayoutParams.width = WindowManager.LayoutParams.FILL_PARENT; recButtonLayoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; paramWindowManager.addView(this.mbtRec, recButtonLayoutParams); OnTouchListener recButtonOnTouchListener = new View.OnTouchListener() { @TargetApi(Build.VERSION_CODES.FROYO) […]

为什么9模块graphics在模拟器中正确的大小,而不是在手机上?

我有一个有9个补丁的背景图像的RelativeLayout。 图像是一个简单的讲话泡泡,在中下方有一个完美居中的“箭头”。 RelativeLayout被夸大,放在一个MapView上。 使用模拟器,对话框可以很容易地指向一个位置,并扩展到其内容(文本,图像或两者)。 当我在手机上运行我的应用程序时,9贴片不能正常拉伸。 对话泡泡的“箭头”将向左偏移一个非常明显的量。 我主要testingNexus S,但也是三星Captivate和Nexus One。 定位SDK 7.经过testing的SDK 7+仿真器。 只有硬件设备似乎有这个问题。 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:id="@+id/BubbleLayout" android:background="@drawable/bubble" android:layout_width="wrap_content" android:gravity="center_horizontal"> <TextView android:layout_height="wrap_content" android:id="@+id/date" android:layout_width="wrap_content" android:maxWidth="196dp"></TextView> <TextView android:layout_below="@+id/date" android:layout_height="wrap_content" android:layout_width="wrap_content" android:maxWidth="196dp" android:id="@+id/summary"></TextView> </RelativeLayout>

Android视图的getTop(),getLeft(),getX(),getY(),getWidth(),getHeight()方法

我写了一个拖放应用程序,因为一些参数而变得非常困惑。 请帮忙弄清楚。 首先,我阅读了View类的文档,并得到以下解释。 getX() : The visual x position of this view, in pixels. getY() : The visual y position of this view, in pixels. getWidth() : Return the width of the your view. getHeight() : Return the width of the your view. getTop() : Top position of this view relative to its parent. getLeft() […]

在LinearLayout中更改LayoutParams的animation

在我的应用程序有一个LinearLayout有0布局高度。 当我点击button时,这个布局高度应该是LayoutParams.WRAP_CONTENT。 这是我在onclicklistner中使用的代码。 LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); slider.setLayoutParams(lp); 我想animation这个。 我如何设置animation滑块。

android从全屏模式退出

我正在使用Android。 我需要在全屏模式下显示我的活动,我使用下面的代码。 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 现在它看起来像这样: 现在我想退出这个完整的模式,所以我的活动应该像以前一样显示。 喜欢这个:- 我有一个button,用来在全模式或正常模式之间切换,我会一次又一次地切换模式。 请build议我如何做到这一点。 意味着如何从全屏获得正常的屏幕。 先谢谢你。

LayoutParams使用什么单位?

我正在使用线性布局,并希望设置视图的最大高度。 在“正常”情况下,我希望视图使用“wrap_content”。 然而,有时这种情况可能会将布局推向不合适的大小。 发生这种情况时,我想将高度限制在最大300dp。 当布局中的列表超过4个列表项目时,我使用以下设置了视图的大小: LinearLayout listLayout = (LinearLayout) dialog.findViewById(R.id.listLayout); if(list.size() > 4){ LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 300); listLayout.setLayoutParams(params); } 审阅文档使我不知道应用的度量单位。 这种情况下的度量单位是多less(dp,sp,px,…)? 运行testing,甚至将值设置为100具有超过所需高度的列表。 请指教

用于TextView的android:LayoutParams使得视图以编程方式消失

我从不同的angular度来看这个。 基本上是这样的: 我已经为XML编写了一个需要以编程方式运行的接口的模板,所以它将在运行期间dynamic填充。 这里的问题是,XML TextView有不less布局调整(工作),是必要的。 但是,如果我真的把它们设置在代码中,TextView甚至不显示。 (顺便说一句,TextView嵌套在TableRow中,因此调用权重。)我首先devise的XML模板用作代码的参考是这样的,它工作得很好: <TextView android:id="@+id/txtviewWhiteBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:background="@drawable/textview_9patch_white" android:gravity="center" android:text="75" android:textColor="@android:color/black" android:layout_margin="20dp" android:padding="20dp" android:textSize="40dp" /> 就像我说的那样,完美地勾画出来。 当我在代码中运行相同的布局,并应用LayoutParams时,TextView消失。 以下是相关的代码片段: int textViewExampleID = 9001; private TextView txtviewExample = new TextView(this); private void buildTextView(){ LayoutParams paramsExample = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1.0f); txtviewExample.setId(textViewExampleID); txtviewExample.setBackgroundResource(R.drawable.textview_9patch_white); txtviewExample.setGravity(Gravity.CENTER); txtviewExample.setTextColor(getResources().getColor(android.R.color.black)); paramsExample.setMargins(20, 20, 20, 20); txtviewExample.setPadding(20, 20, 20, 20); txtviewExample.setTextSize(40); txtviewExample.setText("customExample"); […]

如何通过代码设置layout_span

有谁知道如何在运行时设置/更改android:layout_span=""中的EditText的android:layout_span="" 。 我已经在我的XML文件中定义了EditText。 <TableRow android:paddingTop="20dip" android:gravity="center_horizontal"> <EditText android:layout_width="150dip" android:text="" android:layout_height="40dip" android:id="@+id/p" android:layout_span="2"> </EditText> </TableRow>

在更改LayoutParams对象的属性之后,是否需要再次调用setLayoutParams?

我有一个视图(包含一个广告),我需要在某个时间点(在广告加载后)缩放以适应屏幕宽度。 所以我有一个方法setHeight(myView) ,计算给定屏幕宽度的正确高度,并相应地更改视图的LayoutParams。 代码的关键部分是这样的: LayoutParams params = myView.getLayoutParams(); int width = myView.getWidth(); if (params != null && width > 0) { params.height = (int) Math.round(ratio * width); } 这似乎大部分工作,但有时看法不缩放。 如果我在底部添加以下行,似乎只有一致的工作: myView.setLayoutParams(params); 这似乎也有道理,因为Android Views在其setLayoutParams()方法中调用requestLayout() 。 相反,我不知道公共领域的变化( params.height )如何引发布局变化。 另一方面,我反复在网上find简单的参数,然后不再设置视图。 所以,我的问题是:是否正确的是,更改LayoutParams的属性后立即更新布局,我需要再次调用setLayoutParams ? 那么简单地改变属性只会导致在布局改变从其他地方触发的某个时间点的布局改变?