Articles of android layout

如何拥有一个圆形TextView

我一直在尝试制作一个圆形的TextView 。 它是一个圆圈,我想在圆形气泡上方容纳整个空间,如下图所示。 请看附图。 在此图像中,我们有一个带圆形文本的圆形气泡。 我已经尝试将椭圆形.xml设置为TextView背景但仍然没有运气。 编辑: 随着文字长度的增加。 它必须减小尺寸以适应圆圈内部。 这是最难思考的部分。

Android:制作/显示9patch图像时的对齐错误

NinePatch: 截图: 布局XML: 期望的结果: “edit_tray”表示可以切换的UI元素。 当编辑模式关闭时,“edit_tray”(以及垃圾桶图标)“消失”。 当编辑模式打开时,“edit_tray”可见并覆盖在ScrollView内容上。 垃圾桶图标有两个元素:图标本身及其背后的线性渐变。 NinePatch图像包含三个可伸展区域和一个静态区域以容纳这些元素。 图形中间的垃圾桶图标是静态的,应直接显示在屏幕的水平中心和底部。 渐变应从屏幕底部向一侧延伸到另一侧。 错误? NinePatch图像水平地仅包含图像两侧的可伸展区域的一个像素。 其效果应该是垃圾桶图标直接出现在中心(左侧1个像素=右侧1个像素)。 但是,正如您在上面的屏幕截图中看到的那样情况并非如此。 注意:此截图来自我的测试手机,即T-Mobile G2。 在仿真器中可以看到相同的效果。 但是,在draw9patch预览和eclipse图形布局视图中,图像是完美分布的。 我尝试了几种不同的方法来尝试找出错误的位置,并尝试修复它或解决它。 包括:使用ImageViews代替Views(效果相同),使用android:scaleType =“fitXY”(同一问题),在运行时检查屏幕的宽度和“edit_tray”的宽度是否相同(它们是),使用两个不同的图像作为渐变(如edit_tray背景)和图标(作为ImageView src)(创建另一个问题,其中两个图像没有相互重叠。通过在两者上设置绝对高度固定)等。 答案,解决方法和真实问题 我使用一些简单的NinePatch图像进行了一些测试,每侧最多有六个可伸缩区域。 我注意到至少有一个测试用例(手机,模拟器,draw9patch,eclipse中的Graphical Layout)显示了一些问题。 我决定尝试水平扩展图像,以便在垃圾桶图标的边缘显示更多的线性渐变。 我将图像设为128×64(之前为64×64)。 我制作了更多可伸缩部分的边缘部分,以试图控制发生在图像上的任何不良数学(?)。 Draw9patch报告了坏的部分,所以我把它放回到两个像素,两边一个像素。 有效! 图标直接位于屏幕中央! 我不知道为什么,但是如果不改变图像的实际可伸缩部分,只将图像的宽度改为128,它现在可以工作。 我尝试将图像重新调整为大约100px宽,以删除一些冗余像素,错误又回来了! 它不仅会回来,而且图标被放置在与屏幕中心偏移的完全相同的位置。 我无法弄清楚为什么会这样发生。 有人有主意吗? 这是一个错误吗? 鉴于我上面描述的解决方法,我目前正在进行此工作,但如果有人有任何建议我正在听。

为什么我的EditText复制/粘贴菜单位于EditText下? 如何更改popup窗口的z顺序?

注意 如果有人知道如何订购(z-order)Windows通过windowmanager添加,我也会接受答案,因为它将回答所有问题。 实际上我只是通过windowManager.addView(MyView)立即执行windowManager.addView(MyView)以将视图放在另一个视图之前,但这并不理想,因为它可视地删除并添加视图。 它看起来很疯狂,他们在android中没有构建function来做这么简单的思考。 我创建了一个包含EditText的视图(linearlayout)。 我通过WindowManager.addView(view,Layout_Params)在活动中添加此视图; 但我有问题,edittext将生成的每个popup窗口(如复制/过去菜单或单词建议菜单)将在其他视图下,甚至在他们自己的EditText视图下(不在图片上,edittext具有透明背景) 我将会 我用这些布局参数创建视图(即:LinearLayout): protected WindowManager.LayoutParams createLayoutParams() { WindowManager.LayoutParams p = new WindowManager.LayoutParams(); p.gravity = Gravity.LEFT | Gravity.TOP; p.width = 0; p.height = 0; p.format = PixelFormat.TRANSLUCENT; p.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED; p.flags = NOT_FOCUSABLE_FLAGS; // TYPE_APPLICATION allows for popups in browser windows (like edit menus) p.type = WindowManager.LayoutParams.TYPE_APPLICATION; p.token = null; […]

不幸的是,app已停止在Android模拟器中

我是Android新手,我正在尝试一些小应用程序(如指南针)。 当我在模拟器中运行应用程序时,它会显示消息, Unfortunately, Compass has Stopped 。 我没有编译时错误。 我该如何解决这个问题,是什么导致这个问题? 提前致谢。

软键盘的POPUP布局

我正在开发一个软键盘并且运行良好,但我不知道如何为长按键自定义popup布局。 我的KeyboardView: 我的键盘布局: 键盘popupXML: 我尝试将keyBackground和背景属性放在任何地方,但没有成功。 我试着说: android:popupLayout=”@layout/keyboard” …在keyboardView上但得到nullpointer,也许我在那个参数中放错了XML? 在我放在这里的键盘popup XML: android:popupKeyboard=”@xml/keyboard_popup” 我可以更改布局的大小,键大小,键间距等,但不能更改颜色或背景。 键盘预览也很好,我把它放在键盘上 : android:keyPreviewLayout=”@layout/preview” ……它有效。 我认为popup窗口应该是一样的,但事实并非如此。 如何自定义长按键显示的popup窗口?

找不到R.layout.activity_main

我试图使用一些在线教程进行多种布局。 事情就是我的程序只要只有一个XML文件就可以正确构建和编译。 当我添加多个XML文件时,我收到的错误是“无法解析activity_main或者不是行setContentView(R.layout.activity_main);的字段” setContentView(R.layout.activity_main); 实际上,我以前在R.*使用的每个项目现在报告错误。 我不知道出了什么问题。 任何人都可以建议需要做什么? 编辑1:我尝试清理和重建项目,但这没有帮助。 另外,我正在导入正确的R.java文件,如mypackage .R.java 根据@ RubberDuck的评论,我一旦删除文件,就会在构建项目后生成R.java文件。 但是,当我创建新的XML文件并在其中添加元素时,构建项目时,R.java会被删除。

在android中更改活动上滑动xmlanimation

我在发布之前阅读了以下链接。 如何在Android中的两个活动之间应用幻灯片animation? 我需要知道如何制作活动幻灯片xmlanimation。 就像他们为fadein和fadeout做的那样。

WebView未加载网页

我正在使用WebView加载网站。 但它非常慢,并且在加载特定网站时会泄漏。 我正在使用以下代码加载WebView 。 @Override protected void onNewIntent(Intent intent) { if (intent.getStringExtra(“url”) != null) { webView.loadurl(intent.getStringExtra(“url”)); } } 但我正在调用webView.loadUrl(Config.URL); 使用以下内容初始化WebView后, onCreate()方法中的( Config.URL可能包含与上面指定的相同的url)。 this.webView = (WebView) findViewById(R.id.wv); this.webView.getSettings().setJavaScriptEnabled(true); this.webView.getSettings().setLoadsImagesAutomatically(true); this.webView.getSettings().setDomStorageEnabled(true); this.webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); MyClient client = new MyClient(WebActivity.this, (ProgressBar)findViewById(R.id.progressBar)); webView.setWebViewClient(client); 从onCreate()加载一个正常工作(不好,它太慢)。 但是从onNewIntent()加载的相同URL 无法正常工作! 。 在onNewIntent()中onNewIntent()此操作后,没有使用onNewIntent()加载URL,并且当前页面变得不可移动。 即。 滚动条在WebView中移动但页面不滚动。 我在onCreate()测试了相同的URL并且它正在工作。 为此,我正在通过url intent.putExtra(“url”, Config.URL+targetUrl); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 具有来自通知的未决意图。 虽然它在一些设备上工作,即Google Nexus。 但它并不适用于大多数手机。 […]

查看水平和垂直平移/拖动和捏缩放

是否可以拥有支持水平和垂直平移/拖动的视图。 最重要的是,我希望能够捏缩放和双击缩放。 这个视图是存在于Android上还是有人知道一个项目是谁? 为了使其更加困难,需要将另一个视图(Button,TextView,VideoView,…)添加到视图中。 放大或移动第一个/父视图时,子视图(按钮)需要与父视图一起移动。 我已经尝试了多种解决方案,但它们都没有我想要的选项。 https://github.com/MikeOrtiz/TouchImageView/tree/master/src/com/example/touch http://vivin.net/2011/12/04/implementing-pinch-zoom-and-pandrag-in-an-android-view-on-the-canvas/

android棒棒糖animation故障

在运行Android 5(Lollipop)的设备中,我对默​​认布局animation有一种奇怪的行为。 我正在使用具有多个Fragments的活动,这些活动在运行时使用默认的片段管理器进行替换。 当替换旧片段时,我想使用animation来实现流畅的ui流。 在预棒棒糖设备上,animation的效果与预期的一样,但在运行最新操作系统的设备上,片段故障之间的animation: 我尝试使用默认animationxml标记 android:animateLayoutChanges=”true” 因为它不起作用,我使用此代码更改它没有任何效果 mTransaction = mManager.beginTransaction(); mTransaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); mTransaction.remove(mFragment); mTransaction.add(R.id.container, mFragment, “fragment”); mTransaction.commit(); 我已经在不同设备和android模拟器中测试了代码。 奇怪的是,它在运行pre-lollipop的设备和运行最新操作系统(5.0.1)的android模拟器中的预期效果。 但它不适用于运行Android 5.0的Nexus 4和Nexus 5等设备 有什么建议么? 任何帮助? 提前致谢 编辑: 它似乎是一个错误取决于使用的设备。 我已经在不同设备(三星Galaxy S4,HTC(One mini2,One M8,Desire S),Nexus 4和5)上测试了代码,它只出现在谷歌nexus设备上。 编辑 解决animation问题的一种解决方法是通过以下方法禁用硬件加速 应用程序清单中的标签。 但使用这个使应用程序非常慢。 解 解决此问题的解决方案是为活动设置背景图像/颜色/可绘制。 看到