标签: android-xml

将自定义视图放入另一个视图,使用两者的XML布局

我开始研究游戏,它将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 android-layout android-xml

1
推荐指数
1
解决办法
3051
查看次数

eclipse Android Xml文件设计视图

我的Android xml fle Design看起来像这样. 在此输入图像描述

但是我想这样看,怎么能这样呢?

在此输入图像描述

eclipse android android-xml

1
推荐指数
1
解决办法
4614
查看次数

你能用字符串调用字符串资源吗?

我有一个方法从EditText返回大约20个可能的字符串之一.这些字符串中的每一个都有相应的响应,可以在strings.xml中的T​​extView中打印.有没有办法使用类似的东西从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)

这看起来似乎也没有用.

android android-xml android-resources

1
推荐指数
1
解决办法
114
查看次数

Android Admob没有足够的空间来展示广告

使用了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>

似乎布局正在创建问题.请提出修复方法.非常感谢.

android space admob android-linearlayout android-xml

1
推荐指数
1
解决办法
5775
查看次数

将线性尺寸的一半对齐在屏幕的精确中心水平

问题的标题说明了一切,我试图制作一个如图所示的视图,这里的中央部分应该恰好是屏幕的一半大小,并且应该位于屏幕的中央。我观点的草图

我正在使用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)

但这并没有显示我想要的东西...我在犯什么错误?

android android-layout android-xml

1
推荐指数
1
解决办法
1528
查看次数

Android:如果手机的键盘弹出或关闭,如何动态更改ListView的高度?

我创建了一个允许用户聊天的应用程序.为了显示聊天消息,我使用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)

在此输入图像描述 每当键盘发生故障时,列表视图应该占据整个屏幕,并且每当用户开始键入时它应该在键盘上方.
在此输入图像描述

谢谢.

android android-layout android-listview android-xml

1
推荐指数
1
解决办法
971
查看次数

关于XML布局和自定义android类

我正在使用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中正确定义类?

java android android-xml

1
推荐指数
1
解决办法
2658
查看次数

将两个并排的ImageView居中

我想将两个图像视图居中,但是无法正常工作。目前我有:

    <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)

关于我必须添加哪些内容以使其居中的任何建议?

这是我要实现的目标,可以在底部设置一个特定的边距: 这就是我想要实现的

xml android android-layout android-xml

1
推荐指数
1
解决办法
2193
查看次数

在Android中按下时为什么按钮图像不会改变?

我是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图像始终作为按钮图像存在.按下时它不会改变

我该如何解决这个问题?

android android-xml android-button android-selector

1
推荐指数
1
解决办法
186
查看次数

Android:使用LeadingMarginSpan在textview中显示项目符号列表?

我想在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)

java android textview android-xml

1
推荐指数
1
解决办法
1494
查看次数