我开始研究游戏,它将3个视图叠加在一起,基本上是徽标/广告行,分数行和游戏行.首先,我正在尝试使用名为Level_Score_Bar的类,该类使用名为score_bar_layout的XML布局.现在,我的主要XML代码看起来像这样(注意,我一直根据下面的建议编辑它,如果我修复它,我将停止编辑它):
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent" android:layout_width="fill_parent">
<LinearLayout android:layout_height="wrap_content" android:orientation="horizontal" android:layout_width="fill_parent" android:id="@+id/Title_bar">
<ImageView android:layout_height="wrap_content" android:id="@+id/imageView1" android:layout_width="wrap_content" android:src="@drawable/icon"></ImageView>
<LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/linearLayout4">
</LinearLayout>
</LinearLayout>
<pearsonartphoto.AJEG.Level_Score_bar android:layout_height="fill_parent" android:layout_width="wrap_content" android:id="@+id/Score_Bar">
</pearsonartphoto.AJEG.Level_Score_bar>
<LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="vertical" android:id="@+id/Game_Row">
<View android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/view3"></View>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Level_Score_bar.java看起来像这样:
public class Level_Score_bar extends RelativeLayout {
public Level_Score_bar(Context context, AttributeSet set, int defStyle) {
this(context,set);
}
public Level_Score_bar(Context context, AttributeSet set) {
super(context, set);
this.addView(View.inflate(context,R.layout.score_bar_layout,null));
Log.d(TAG,"Added view");
}
}
Run Code Online (Sandbox Code Playgroud)
score_bar_layout.xml看起来像这样
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="@string/level" android:id="@+id/Level_text" android:layout_toRightOf="@+id/Level_text"></TextView>
<TextView …Run Code Online (Sandbox Code Playgroud) 我的Android xml fle Design看起来像这样. 
但是我想这样看,怎么能这样呢?

我有一个方法从EditText返回大约20个可能的字符串之一.这些字符串中的每一个都有相应的响应,可以在strings.xml中的TextView中打印.有没有办法使用类似的东西从strings.xml调用字符串context.getResources().getString(R.strings."stringFromMethod")?还有另一种方法从这样的大型列表中调用字符串吗?
我能想到的唯一方法是将每个字符串转换为int,并使用它来查找字符串数组或switch语句中的字符串.这两个都涉及一个巨大的if-else if语句将字符串转换为int,并且如果添加或删除任何字符串我将更有可能错过一个并且有趣的bug会采取足够的步骤来改变狩猎.干净利落的想法吗?
编辑:忘了添加,我尝试使用的另一种方法是从中获取resourceID
int ID = context.getResources().getIdentifier("stringFromMethod", "String", context.getPackageName())
Run Code Online (Sandbox Code Playgroud)
并取整数并将其放入
context.getResources().getString(ID)
Run Code Online (Sandbox Code Playgroud)
这看起来似乎也没有用.
使用了admob站点中提供的代码
这是我的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:background="@drawable/background_img"
android:orientation="vertical"
android:id="@+id/atozlayout"
>
<GridView
android:id="@+id/gridView1"
android:numColumns="auto_fit"
android:gravity="center"
android:columnWidth="55dp"
android:stretchMode="columnWidth"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
>
</GridView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但是logcat显示了E/Ads(4244):没有足够的空间来展示广告!想要:<480,75>,有:<800,0>
似乎布局正在创建问题.请提出修复方法.非常感谢.
问题的标题说明了一切,我试图制作一个如图所示的视图,这里的中央部分应该恰好是屏幕的一半大小,并且应该位于屏幕的中央。
我正在使用layout_weight和weightsum,避免左右填充:
<LinearLayout
android:id="@+id/OuterlinLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="4" >
<LinearLayout
android:id="@+id/containerLayout1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="horizontal" />
<LinearLayout
android:id="@+id/GlobalLayout"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="2"
android:orientation="vertical" >contens of main view</LinearLayout>
<LinearLayout
android:id="@+id/containerLayout2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:orientation="horizontal" >
Run Code Online (Sandbox Code Playgroud)
但这并没有显示我想要的东西...我在犯什么错误?
我创建了一个允许用户聊天的应用程序.为了显示聊天消息,我使用ListView来显示列表项中的消息.我希望ListView在键盘弹出或关闭时进行相应调整.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<EditText
android:id="@+id/message_edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:ems="10"
android:hint="Enter your message..."
android:maxLength="20"
android:paddingLeft="22dp" />
<ImageButton
android:id="@+id/send_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:background="@drawable/ok"/>
</RelativeLayout>
<ListView
android:id="@+id/message_listView"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:stackFromBottom="true">
</ListView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
每当键盘发生故障时,列表视图应该占据整个屏幕,并且每当用户开始键入时它应该在键盘上方.

谢谢.
我正在使用Eclipse IDE.我应该如何定义类,初始化(例如)activity_main.xml?让我们假设,在activity_main.xml我有ListView对象的定义中:
<ListView
android:id="@+id/ListViewAction"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
</ListView>
Run Code Online (Sandbox Code Playgroud)
通常我可以在文件中处理这个MainActivity.java,这很好.
但我想将代码分割到不同的.java文件并创建扩展ListView的类.那么,我创建了新的java类文件以及我应该在该类中放置什么来重载ListView?如果我将标准类定义放在新的java文件中,它不起作用:
public class ListViewAction extends ListView {
public ListViewAction(Context context) {
super(context);
System.out.println("ListViewAction()");
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何在新的java文件和XML中正确定义类?
我想将两个图像视图居中,但是无法正常工作。目前我有:
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="goToMainMenu"
android:src="@drawable/tw" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="goToMainMenu"
android:src="@drawable/fb" />
Run Code Online (Sandbox Code Playgroud)
关于我必须添加哪些内容以使其居中的任何建议?
这是我要实现的目标,可以在底部设置一个特定的边距:

我是android的新手,我创建了简单的应用程序.当点击按钮textview应该改变该功能工作正常但按钮图像按下时不会改变.
这是我在fragment_main.xml中的按钮
<Button
android:id="@+id/btnCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/plus"
android:onClick="changeText" />
Run Code Online (Sandbox Code Playgroud)
这里是drawable文件夹中custom.xml文件的代码.(没有默认的drawable文件夹,我创建了它)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/plus_selected" android:state_pressed="true"/>
<item android:drawable="@drawable/plus_highlighted" android:state_focused="true"/>
<item android:drawable="@drawable/plus"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
plus_selected.png,plus_highlighted.png和plus.png文件位于drawable-hdpi文件夹中
这是我的java代码
public void changeText(View v) {
TextView tvText = (TextView) findViewById(R.id.tvDisplay);
tvText.setText("you cliked the button");
}
Run Code Online (Sandbox Code Playgroud)
当单击按钮textview更改为"您单击按钮"但plus.png图像始终作为按钮图像存在.按下时它不会改变
我该如何解决这个问题?
我想在textview中显示项目符号列表.我可以使用子弹,但子弹不是很有吸引力,似乎没有办法定制它.我想使用默认项目符号(•)作为我的项目符号列表.有没有办法使用LeadingMarginSpan来获得我想要的效果?基本上,如果线条以子弹开头,我希望它与左边对齐,但是如果线条太长以至于它断开那么下一行向下的文本(断开的文本)应该缩进到与之后的文本相同的级别要点.
* for example
instead of this
* for example
should look like this
Run Code Online (Sandbox Code Playgroud)
我目前的代码:
String[] bulletpoint = {some array of strings};
CharSequence allText = "";
for (int i = 0; i < bulletpoint.length; i++) {
String text = bulletpoint[i];
SpannableString s = new SpannableString(text + "\n");
s.setSpan(new LeadingMarginSpan(BulletSpan.STANDARD_GAP_WIDTH) {
@Override
public int getLeadingMargin(boolean first) {
return 0;
}
@Override
public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, …Run Code Online (Sandbox Code Playgroud)