2014-03-24 201 views
1

我正在創建一個android應用程序,並已進入第一階段的問題。ImageView不顯示在線性佈局(android)

我試圖在Layout中顯示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. 我可以」不要隱藏頂部的標題欄(黑色欄說「WhereIsIt」(app。名稱))。
  2. imageview中的圖像未顯示。

我一直在挖掘這個小時,我做錯了什麼?

+0

爲什麼ü調用mImageView.invalidate( );? – Libin

+0

它不會顯示沒有它,以及 – DanielY

回答

0

關於隱藏titlebar,你只需要在你的Activity上的manifest.xml文件中設置這個主題。

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; 
     } 
    }); 
+0

事實上,現在我已經設置了您在menifest文件中給我的主題,而不是獲得空白的白色視圖,我得到空白的黑色視圖。所以現在我需要兩個修復 - 獲取圖像出現,並且背景顏色變回白色;) – DanielY

+0

@ user1067083使用android:theme =「@ android:style/Theme.Light.NoTitleBar.Fullscreen」 改爲:D – joao2fast4u

+0

哈哈......好吧,現在我回到白色的空白視圖......任何帶有該圖像的新提示? – DanielY

0

您可以隱藏

getActionBar().hide(); //if API >=11 

getSupportActionBar().hide(): //if API <11 
行動起來吧

另外,我沒有看到您的佈局有任何問題。我可以在我的連接處看到圖像5.

+0

這很奇怪......我在銀河系s3中看不到它,它在屏幕尺寸方面沒有太大差別 – DanielY

+1

嘗試移除mImageView.invalidate(); – Libin

+0

完成。同樣的東西 – DanielY

-1

您忘記了設置LinearLayout的方向。 嘗試內<LinearLayout >添加此到XML:

android:orientation="vertical" 
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 
     } 
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);