2

プログラムでビットマップを設定したい imageView imgFirstAct は、プログラムを実行した後、何らかの理由で空のままです。最初は、imageView の背景とソースは空です。

関連する imageViews XML は次のとおりです。

  <ImageView
    android:id="@+id/imgFirstAct"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/imgCopyBelow"
    android:layout_alignLeft="@+id/imgCaloriesBelow"
    android:layout_alignTop="@+id/imgCaloriesBelow"
    android:layout_marginRight="89dp"
    android:layout_toLeftOf="@+id/imgFifthAct"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop" />

    <ImageView
    android:id="@+id/imgCopyBelow"
    android:layout_width="10dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/imgCaloriesBelow"
    android:layout_alignRight="@+id/ImageView03"
    android:layout_below="@+id/TextView11"
    android:layout_marginTop="15dp"
    android:background="@drawable/bar_fill" />

コードは次のとおりです。

private ImageView imgFirstAct;
private ImageView imgCopyBelow;

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_dashboard);

     imgFirstAct = (ImageView)findViewById(R.id.imgFirstAct);
     imgCopyBelow = (ImageView)findViewById(R.id.imgCopyBelow);

     imgFirstAct.setScaleType(ImageView.ScaleType.FIT_START);

     Bitmap bitmap = ((BitmapDrawable)imgCopyBelow.getBackground().getCurrent()).getBitmap();

     int h = bitmap.getHeight();

     Bitmap croppedBmp = Bitmap.createBitmap(bitmap, 0, 0, 100, h); 

     imgFirstAct.setImageBitmap(croppedBmp);
}
4

2 に答える 2

2
  1. 画像ビューへの参照があることを確認してください。
  2. mImg.setImageBitmap(img);ビットマップを設定 するために使用します。
    • mImgImageViewimgBitmapです。

(2) 動作しない場合は、ビットマップに何か問題があることを確認してください。

于 2013-11-10T09:07:10.353 に答える
0

findViewById() の前に setContentView() を呼び出す

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);  // Call your layout file
    imgFirstAct = (ImageView)findViewById(R.id.imgFirstAct);
}

それが役に立てば幸い (:

于 2013-11-10T09:01:57.493 に答える