2011-01-14 59 views
5

我已經知道如何在Android上獲取我的Activity作爲全屏,現在我需要在此屏幕上繪製圖像。在FullScreen模式下繪製圖像Android

這是我的XML佈局。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<ImageView android:id="@+id/image01" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
</LinearLayout> 

該圖像是動態生成的,並在ImageView中繪製。

這是我的活動中的代碼。

public void onCreate(Bundle savedInstance) { 
    super.onCreate(savedInstance); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.main); 
} 

但是在運行時,Activity是FullScreen,但ImageView是在中心調整的。

怎麼了?

我添加了下面的代碼來查看組件的尺寸。

View view = getWindow().getDecorView(); 
    Log.i("RMSDK:J:IbaReader(decor)", 
      "[w=" + view.getWidth() + ":h=" + view.getHeight() + "]"); 
    Log.i("RMSDK:J:IbaReader(img)", 
      "[w=" + img.getWidth() + ":h=" + img.getHeight() + "]"); 

這導致兩種情況下[w = 320:h = 480]。

這是我的繪製方法。

private void draw() { 
    byte[] image = services.getImageBuffer(600, 1024); 
    Bitmap bmp = Bitmap.createBitmap(600, 1024, Bitmap.Config.RGB_565); 
    int row = 0, col = 0; 
    for (int i = 0; i < image.length; i += 3) { 
     bmp.setPixel(col++, row, image[i + 2] & image[i + 1] & image[i]); 
     if (col == 600) { 
      col = 0; 
      row++; 
     } 
    } 
    img.setImageBitmap(bmp); 
} 

回答

7

添加android:scaleType="fitXY"imageview

+0

仍然無法使用。 – 2011-01-14 19:09:02

0

除了設置android:scaleType="fitXY",可以移除該活動標題欄使用這些方法之一的圖像真正的全屏幕,使:

設置窗口首前setContentView()

requestWindowFeature(Window.FEATURE_NO_TITLE); 

或者在AndroidManifest文件中設置主題選項

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