Articles of android layout

自定义ListView不会在点击时突出显示ListViewItem

我有一个由ImageView和TextView组成的自定义列表视图。 点击工作正常,但不会像正常的ListView那样突出显示该项目。 我将如何添加一个亮点? 我尝试通过点击背景色设置背景颜色,然后添加一个计时器来去除背景颜色。 这工作,但我想要一个更好的解决scheme。 有任何想法吗?

Android:以编程方式使用片段

由于某些原因,我不能使用XML布局文件。 但我需要创build一个平板Android应用程序。 我决定使用片段。 我想创build这个XML生成的相同的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment class="com.example.ItemsList" android:id="@+id/items_list" android:layout_weight="1" android:layout_width="0dp" android:layout_height="fill_parent" /> <FrameLayout android:id="@+id/item_details" android:layout_weight="1" android:layout_width="0dp" android:layout_height="fill_parent" android:background="?android:attr/detailsElementBackground" /> </LinearLayout> 但我有添加片段到我的linearLayout的问题: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(createUI()); } private View createUI() { LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.HORIZONTAL); layout.setLayoutParams(new LinearLayout.LayoutParams(AbsListView.LayoutParams.FILL_PARENT, AbsListView.LayoutParams.FILL_PARENT)); layout.setId(0x101); { FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); […]

ActionBar容量/溢出没有改变方向的变化

我有一个应用程序使用ActionBar,我自己处理方向的变化: android:configChanges="keyboard|keyboardHidden|orientation|screenSize" …和菜单应适合在ActionBar没有横向溢出,但不是肖像: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/Game" android:id="@+id/game" android:icon="@android:drawable/ic_menu_manage" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Type" android:id="@+id/type" android:icon="@android:drawable/ic_menu_edit" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Other" android:id="@+id/other" android:icon="@android:drawable/ic_menu_gallery" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Solve" android:id="@+id/solve" android:icon="@android:drawable/ic_menu_directions" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Help" android:id="@+id/help" android:icon="@android:drawable/ic_menu_help" android:showAsAction="ifRoom"/> </menu> 在启动时,这可以正常工作: 景观: 肖像: (是的,我可以强制所有项目始终显示,他们将适合,如下所示,但可能会在一个较小的平板电脑上打破) 当模拟器改变方向时,ActionBar的容量似乎没有改变: 肖像,当我开始在风景: (这是好的,但不一致) 风景,当我开始肖像: 这看起来非常愚蠢,是我想解决这个问题的原因。 我把这个调用添加到invalidateOptionsMenu() ,但是没有帮助: @Override public void onConfigurationChanged(Configuration newConfig) { maybeMoveSomeViewsAround(newConfig); super.onConfigurationChanged(newConfig); invalidateOptionsMenu(); } […]

水平alignment时,微调器浮起来

如果我在水平LinearLayout或表行中添加微调,例如: <LinearLayout android:id="@+id/linearLayout3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" > </EditText> <Spinner android:id="@+id/spinner1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> 纺纱工漂浮下来。 它漂浮在android 2.2,android 2.3和android 3.2,但它在android 4.0中运行良好,他们修复了它。 但是有办法让它与android 2.3上的EditText等其他视图alignment。 我的意思是: *********************** * if EditText is here * ************************ *********************** * Spinner will be here * ************************

XML驱动的graphics用户界面和性能

阅读XML布局的在线开发人员指南页面 ,我发现以下语句: 你的UI描述是你的应用程序代码的外部,这意味着你可以修改或修改它,而不必修改你的源代码并重新编译。 我知道XML布局和资源的许多优点,但是由于XML文件放置在APK中,我认为没有真正的方法来修改GUI而不重新打包。 我的意思是,我们大多数人使用eclipse ADT插件和ANT来打包应用程序,所以在编译类文件时没有真正的收获(因为在修改资源文件之后,开发者将不得不重新打包应用程序并生成新的APK文件)。 因此,无需重新部署整个APK,就无法在设备上重新部署GUI。 如果这个假设是真实的,那么XML文件将在APK文件的生命周期中是相同的。 我猜这些文件(特别是布局的)必须在运行时(在一个activity的onCreate之前)被parsing和处理,这比以编程方式构buildGUI的效率要低(就像在Swing中一样)。 布局通常不是一个瓶颈,但如果我是正确的,我会看到在这里可以更好地使用(例如,与animation)的一个小浪费时间。 阅读同一页面,它说: 在编译应用程序时,每个XML布局文件都被编译到一个View资源中。 检查我的一个APK,我一直在寻找一个预编译的文件在classes.dex ,除了我的java类和R.class文件外,没有什么东西。 布局XML文件位于/res/layout folder ,并且有一个名为resources.arsc的文件,它似乎包含有关其他资源(string,图标名称)的信息,但没有任何与Views相关的信息,我认为(纠正我,米错)。 我的问题: XML布局文件是否预编译,以及哪个文件? 如果没有,是否有一个编译选项将布局信息完全预编译到文件中以加快载入时间? (理想情况下,这将是一个类文件) 如果没有,是否有办法在第一次执行时创build该文件并将其caching在应用程序安装文件夹中,以便后续的运行时执行可以读取该文件而不是parsingXML,并具有更快的加载时间? 提前致谢。

如何添加在Android 2.3平台的行动栏?

在我的应用程序中,我想创build一个操作栏作为我的应用程序图标和视图控件。 我提到了很多教程和示例来创build操作栏,但是他们都有很多代码。 我也读过ActionBarSherlock,但是这需要minsdkversion 15来编译库。 因为我是Android新手,所以我需要一步一步的教程来创build一个简单的操作栏。 如果你知道一个简单和容易的教程,使用XML创build操作栏,然后请张贴您的答案。

在制作Android应用程序时是否有内存pipe理技巧?

最近我在一个关于Android的采访中被问到了一些问题。 我search了一些他们,但我找不到合适的资源和答案。 所以我想在这里与你分享。 Android的首选布局是什么(为了更好的内存消耗等)? 我没有答案,面试官告诉我这是相对的布局。 这是真的 ? 对此有何解释? 告诉我一些你为了更好的记忆消耗而做的事吗? 我看过这里,但似乎还有其他的东西。 因为面试官提到一些与静态variables相关的东西比较好。 如果Android需要内存,它会杀死一个服务或活动? 优先问题。 我也没有find任何人讨论这个。 面试官说服务的一些事情比活动的优先级高,所以活动就是被杀的组成部分。 这是真的 ? 任何进一步的资源或解释? 请分享您对这个问题所了解的知识或资源。

仅当活动开始时,如何滚动到Horizo​​ntalScrollView的中心?

我有一个活动,显示一个水平长的imageview howizontalscrollview。 我需要当活动开始时,horizo​​ntalscrollview必须滚动到自己的中心,而不是开始。 我正在search谷歌,在这里,我找不到方法.. 这是我的水平滚动视图: HorizontalScrollView wvScroll = new HorizontalScrollView(this); wvScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); iv.setImageBitmap(Util.getRemoteImage("http://mywebsite.com/90.gif")); iv.setScaleType(ScaleType.CENTER_CROP); wvScroll.addView(iv); mainLayout.addView(wvScroll); 谢谢

如何创buildAndroid的谷歌播放的网格视图像Widget与不同大小的图像dynamic加载

你好 我已经附上了两个具有网格视图的图像,如具有不同图像高度和宽度的小部件,dynamic加载,我需要创build相同types的UI,如果有人引导我开始,我可以很高兴。

以编程方式添加多个片段

我正在使用片段事务添加两个片段的活动。 但是恰好在应用程序启动时只显示第一个片段。 这里是代码: 主要活动 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragOne firstButton = new FragOne(); FragmentTwo secButton = new FragmentTwo(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.add(R.id.frag_container, firstButton); transaction.add(R.id.frag_container, secButton); transaction.commit(); } activity_main.xml中 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:id="@+id/frag_container" android:layout_height="fill_parent" android:orientation="horizontal"> </LinearLayout> frag_one.xml和frag_two.xml类似 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button […]