Articles of android layout

Android圈背景变成椭圆形

我想在textview上放一个圆圈背景。 渲染时圆圈变成椭圆形。 我的布局XML: 我的圈子背景:

Android的invalidate()和postInvalidate()方法有什么区别?

Android的invalidate()和postInvalidate()方法有什么postInvalidate() ? 每个人何时被召唤? 是否只能在扩展View类中调用这些方法?

检测可点击项目的投掷手势

想象一下带有4个按钮的布局 _______________________________ | | | | A | B | |______________|________________| | | | | C | D | |______________|________________| 我想检测整个布局上的投掷手势,但是当投掷开始时,没有检测到按钮。 我在用着: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gesturedetector= new GestureDetector(this, this); findViewById(R.id.touchContainer).setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.e(“”,”TouchEvent”); return gesturedetector.onTouchEvent(event); } }); } 当没有可点击的项目时,如果从可点击的项目开始投掷则失败。 我怎么解决这个问题? 提供50分的赏金,以获得完整的工作答案

一次关闭所有最近打开/运行的应用程序按钮 – android

我想立刻关闭所有最近的应用程序。 我find了以下代码,但它只显示了最近的应用程序。 我想关闭所有这些最近的应用程序。 显示所有最近的应用列表代码:(但我不想列表我需要关闭所有最近的应用程序) Class serviceManagerClass = Class.forName(“android.os.ServiceManager”); Method getService = serviceManagerClass.getMethod(“getService”, String.class); IBinder retbinder = (IBinder) getService.invoke(serviceManagerClass, “statusbar”); Class statusBarClass = Class.forName(retbinder.getInterfaceDescriptor()); Object statusBarObject = statusBarClass.getClasses()[0].getMethod(“asInterface”, IBinder.class).invoke(null, new Object[] { retbinder }); Method clearAll = statusBarClass.getMethod(“toggleRecentApps”); clearAll.setAccessible(true); clearAll.invoke(statusBarObject); Toast.makeText(getApplicationContext(), “All recent app closed….”, Toast.LENGTH_LONG).show();

Android XML中的android:和app:前缀之间的区别?

有什么区别,更重要的是在Andriod视图XML中使用不同前缀的必要性? 例如, 有android和app contentInsetEnd 。

在完全绘制所有视图后会触发什么事件?

我需要捕获一些ImageView的绝对位置以用作放置目标。 我似乎无法find我需要将我的代码放入读取屏幕并获取Left(),Top()..位置的事件。 我不希望监控每个观点的通货膨胀。 必须有某种onScreenFinsihedtypes的事件,但我找不到它。 onMeasure和onDraw似乎在他们的工作开始时就开始了,我需要知道他们什么时候完成。 TIA。

GridLayout吐出“不一致约束”调试级日志

我已经使用GridLayout几个星期了,当我打电话时我注意到了 gridLayout.requestLayout() 它在LogCat中吐出以下调试级别消息: D/android.widget.GridLayout(14048): horizontal constraints: x5 – x0 > 1115, x5 – x4 < 221, x4 – x3 < 221, x3 – x2 < 221, x2 – x1 < 221, x1 – x0 < 221 are inconsistent; permanently removing: x5 – x4 < 221. 我查看了GridLayout的来源,试图找出可能的原因,为什么“约束不一致”,但我无法弄明白。 这些消息出现的事实 – 这是我应该关注的事情吗? 我认为事情的布局没有任何问题。 我在Fragments中有一个GridLayout作为ViewPager中的页面加载,所以当用户在LogCat中多次看到上面输出的页面之间滚动时。

Android ConstraintLayout生成绝对值

我最近开始在Android Studio 2.2中学习新的ConstraintLayout ,并注意到当我添加最简单的视图时,布局编辑器会自动生成一些绝对坐标。 这是一个示例XML: 请注意绝对值如81dp , 246dp , 479dp …我试图手动删除这些,但当我回到“设计”选项卡并返回“文本”选项卡时,这些会重新生成。 现在,我有三个问题: 有没有办法告诉Android Studio不生成这些? 我应该手动将它们放在dimens.xml吗? 这些绝对会导致其他设备出现布局问题吗?

在膨胀布局上调用measure时出现空指针exception

所以我有一个单独的文件布局,所以我给它充气。 然后我在我的布局中更改我的文本视图和图像,并调用measure,但是当我尝试测量布局时,我得到一个空指针。 我不能为我的生活找出原因。 我试图最终将布局转换为位图。 View inflatedView = ((Activity)getContext()).getLayoutInflater().inflate(R.layout.my_layout, null); inflatedView.measure(getWidth(), getHeight()); inflatedView.layout(0, 0, inflatedView.getMeasuredWidth(),inflatedView.getMeasuredHeight()); Bitmap viewAsImage = Bitmap.createBitmap(inflatedView.getWidth(), inflatedView.getHeight(), Bitmap.Config.ARGB_8888); Canvas viewCanvas = new Canvas(viewAsImage); 这是XML 在measure()行,它抛出一个空指针,我已经validationgetWidth和getHeight给出了合法的值。 有任何想法吗? 谢谢!

以编程方式从Appcompat 22.2.0更改浮动操作按钮的颜色

我想知道如何更改支持库22.2.0中的浮动操作按钮颜色? 我试过了 button.setBackgroundColor(color); 但很明显,这会改变按钮的可绘制性并变为正方形。 现在我想知道如何更改颜色而不仅仅是颜色,而不会触及形状? 提前致谢