Articles of android layout

无论屏幕大小和方向如何,如何使Android布局成比例

这是我在此的头一篇博文。 我刚刚学习了Android编程并遇到了这个问题。 我搜索了一下,发现了一些解决方案,但我无法使我的代码工作。 所以我想知道我的代码或实现的哪一部分是错误的。 所以,问题是我想制作一个在不同屏幕尺寸和方向上保持相同比例的布局。 这是我的代码: activity_main.xml中 我目前无法发布截图,因为它说“你需要至少10个声望来发布图片。” 因此,我希望将屏幕垂直划分为3个部分,并将顶部水平分割为2,将底部水平分为3,并保持其比例,无论屏幕尺寸,分辨率和方向如何。 唯一不起作用的部分是顶部块,在代码我将它设置为android:layout_height=”150dp”因为如果我将它们设置为android:layout_height=”fill_parent” ,布局会以某种方式被破坏android:layout_height=”fill_parent” 。 但是,如果我改变方向,这不会使布局成比例。 任何帮助将不胜感激。 谢谢。

设置自定义字体时的慢列表视图

我在xml文件中有一些数据放在/res/values/mydata.xml中。 我想用自定义字体在列表视图中显示数据。 在模拟器中一切都很棒但在实际设备中(使用三星galaxy tab 10.1 2与android 4.0.3)在滚动列表视图时太慢了。 实际上它使用默认字体效果很好,但设置自定义字体时会出现问题。 这是我的java代码: public class ShowFoodCalorie extends ListActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // reading data from xml file setListAdapter(new MyAdapter(this, android.R.layout.simple_list_item_1, R.id.textView1, getResources().getStringArray(R.array.food_cal))); } private class MyAdapter extends ArrayAdapter { public MyAdapter(Context context, int resource, int textViewResourceId, String[] string) { super(context, resource, textViewResourceId, string); } public […]

如何制作可滚动的ListView而不是填满整个屏幕?

我想制作带有TextView的屏幕(标题),中间的ListView和底部的按钮。 如何放置ListView,将填充顶部TextView和底部按钮之间的整个空间,并能够滚动其内容? 现在,当我的列表增长时,它会按下屏幕外的底部按钮。 我有: 最后一个TextView用于创建间隙并将Button移动到底部。

如何在一个地方定义按钮背景并在整个应用程序周围使用?

我想我的Android应用程序的所有按钮使用相同的背景图像 ,这是所有按钮都具有属性: android:background=”@drawable/my_btn_bg” 有没有办法在一个地方定义它并在整个应用程序的按钮中生效? (而不是在每个按钮组件上定义背景) 我认为在theme.xml中定义可能是一个解决方案,但我不知道该怎么做? 有人可以给我一些提示吗?

在多个膨胀的EditTexts上设置文本会导致在旋转后使用相同的文本填充所有文本

我正在膨胀几个EditTexts并将它们添加到LinearLayout : private void setupCommentViews(){ int i = 0; Iterator iterator = commentInformations.iterator(); while(iterator.hasNext()) { i++; View v = LayoutInflater.from(context).inflate(R.layout.comment_row_item, commentsContainer, false); EditText commentField = (EditText)v.findViewById(R.id.comment); CommentInformation commentInformation = iterator.next(); final String uniqueId = commentInformation.getUniqueId(); String currentCommentText = comments.get(uniqueId); if(currentCommentText != null) { Log.v(“into”,”Setting old text: “+currentCommentText); commentField.setText(currentCommentText); } else { Log.v(“into”,”Setting empty text: “+i); […]

我想通过我的应用程序在主布局背景中设置保存在SD卡上的图像

我正在创建一个应用程序,我想在主xml linearlayout中设置不同的背景图像。我已经在SD卡上存储了5个图像文件。现在我想选择一张图片并将其设置为我的maim xml linearlayout background.so它将取代上一张图像并将新图像显示为背景。

Android:在API级别9中使用PopupMenu

我想在我的应用程序中添加一个PopupMenu。 问题是它也适用于Android 2.3。 我发现一些post,人们建议使用AlertDialog作为替代,但我更喜欢PopupMenu;) 我认为它应该在这个API级别工作,因为我已经在几个应用程序中看到它(我的手机有2.3.5并且它工作正常)。 是否有可能使这项工作?

如何在Android中的TabLayout中将选项卡标题对齐到左侧

我似乎无法将我的标题标题对齐在我的TabLayout内部左侧。 目前,标题是中心的。 这就是我想要实现的目标。 这就是我现在所拥有的。 我正在使用的代码如下:

是否可以在xml中保存layout_weight?

我需要根据屏幕的物理大小更改布局中3个视图的layout_weight。 视图的权重为0-1-0,但在xlarge屏幕中使用布局时,这必须更改为0.2-0.6-0.2。 我尝试在dimension.xml的不同副本中保存layout_weight(一个在values / dimensions中,另一个在values-xlarge / dimensions中),但看起来我不能在没有设置dp / px或w / e的情况下给出一个维度(无法保存“原始”数字,如1或0.2)。 有可能以某种方式通过xml做,或者我必须以编程方式工作才能实现这一目标吗?

为什么findViewById(…)返回null?

findViewById在ImageView小部件上为我返回null。 没有错误,logcat中没有任何内容表明发生了什么。 正确设置了id的匹配和其他图像视图。 Java和xml由xml中的class标记链接,指向java中定义的类,它是RelativeLayout的后代。 我尝试更改R.id.more_icon1的名称,但这不起作用。 尝试清洁,但没有奏效。 使用调试器来查看它确实只是移动过去以及何时返回mMoreIcon == null。 什么是奇怪的是, 其他ImageView的工作正常。 有人见过这个或有任何想法吗? Java代码:Class是RelativeLayout的后代 @Override protected void onFinishInflate() { super.onFinishInflate(); mText1 = (TextView) findViewById(R.id.text1); mText2 = (TextView) findViewById(R.id.text2); mIcon1 = (ImageView) findViewById(R.id.icon1); mIcon2 = (ImageView) findViewById(R.id.icon2); // mMoreIcon is the one that gets set as null. mIcon1 and mIcon2 work just fine. mMoreIcon = (ImageView) findViewById(R.id.more_icon1); […]