ImageView不是以线性布局显示(android)

时间:2014-03-24 17:56:46

标签: java android android-layout android-imageview android-view

我正在创建一个Android应用程序并在第一阶段已经遇到问题。

我试图在布局中使用ImageView显示图像。

我的代码如下:

activity_starter.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/white"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".StarterActivity" >

    <ImageView
        android:id="@+id/starterPic"
        android:layout_width="0dp"
        android:layout_height="160dp"
        android:layout_gravity="center"
        android:layout_weight="0.84"
        android:adjustViewBounds="true"
        android:contentDescription="@string/app_name"
        android:src="@drawable/ic_launcher"
        android:visibility="visible" />

</LinearLayout>

和StarterActivity.java:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_starter);
        Log.i(LOG_TAG, "Entered Starter Screen");

        ImageView mImageView = (ImageView) findViewById(R.id.starterPic); 
        mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        mImageView.setImageResource(R.drawable.ic_launcher);
        mImageView.setVisibility(ImageView.VISIBLE);
        mImageView.invalidate();
}

问题是:

  1. 我无法隐藏顶部的标题栏(黑条表示&#34; WhereIsIt&#34;(应用名称))。
  2. 未显示imageview中的图像。
  3. 我已经挖了好几个小时,我做错了什么?

5 个答案:

答案 0 :(得分:1)

要隐藏Title bar,您只需将此代码放入onCreate方法中:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE); //add this line 
            setContentView(R.layout.activity_starter);
             // rest of your code 
        }

答案 1 :(得分:0)

关于隐藏titlebar,您只需要在manifest.xml中的Activity上设置此主题。

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

动作栏消失了。

我运行你的代码(只有xml布局)并且图像显示,但我使用了其他值来填充。 检查用于填充的值是否不是此问题的原因。

修改

使用此代码查看图片的实际尺寸:

    ViewTreeObserver vto = mImageView.getViewTreeObserver();
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        public boolean onPreDraw() {
           int finalHeight = mImageView.getMeasuredHeight();
           int finalWidth = mImageView.getMeasuredWidth();
           System.out.println("Height: " + finalHeight + " Width: " + finalWidth);
            return true;
        }
    });

答案 2 :(得分:0)

您可以按

隐藏操作栏
 getActionBar().hide(); //if API >=11

 getSupportActionBar().hide(): //if API <11

另外,我没有看到您的布局有任何问题。我可以在我的nexus 5中看到图像。

答案 3 :(得分:0)

 In manifest file just add the bold line for hiding titlebar
 <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    **android:theme="@android:style/Theme.NoTitleBar"** >
    <activity
        android:name="com.example.abc.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    </application>
and for Image just use this code in xml
<ImageView
    android:id="@+id/starterPic"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher" />
and this code in java
ImageView mImageView = (ImageView) findViewById(R.id.starterPic); 
mImageView.setImageResource(R.drawable.ic_launcher);

答案 4 :(得分:-1)

您忘记设置LinearLayout的方向。 尝试将其添加到<LinearLayout >中的xml:

android:orientation="vertical"