2011-10-03 9 views
12

どのように動的に重力を設定できますか?Androidイメージビューの重力

Bitmap bmp; 
im = new ImageView (this); 
bmp=getbmp(img); 
im.setImageBitmap(bmp); 

ここで画像を上に置きます。こんにちは、android:gravityをmain.xmlに入れずにこれを行うことはできますか?

EDIT:

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:scrollbars="vertical" 

    > 
</ScrollView> 

私は、フレームのレイアウトを持っていると私はそれに画像を追加し、テキストと私はイメージがの上になりたいです画面。

FrameLayout fm = new FrameLayout (this); 
fm.addView(im); 
fm.addView(fin); // fin = the text view 
setContentView(fm); 
+0

詳細をご覧ください。あなたのレイアウトファイルを投稿してください。 –

+0

編集を完了しました。 – Teo

+0

ImageViewをレイアウトファイルに入れないだけの理由はありますか? –

答えて

27

ImageView.setScaleType()をImageView.ScaleType.FIT_STARTと組み合わせて使用​​します。

+0

im.setScaleType(im.FIT_START); ?動作しません。 – Teo

+0

申し訳ありませんが、これは次のようなものです:im.setScaleType(ImageView.ScaleType.FIT_START); –

+0

ありがとう、それは動作しますが、なぜ画像の上にテキストを置くのでしょうか?私に何ができる ? – Teo

0

ImageViewをLinearLayoutに配置し、LinearLayoutのsetLayoutParamsを使用してレイアウトの重力を設定することができます。

0

あなたは可能性がある場合、ヘルプあなた xmlファイル

<GridView android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:id="@+id/gallerylistactivity_gallery" 
    android:columnWidth="90dp" android:numColumns="4" 
    android:verticalSpacing="5dp" android:horizontalSpacing="10dp" 
    android:gravity="center" android:stretchMode="spacingWidth"/> 

.javaファイル

パブリッククラスGalleryListAdapterがBaseAdapter {

private Context mContext; 

private Integer[] mImageIds = { R.drawable.gallery_01, 
     R.drawable.gallery_02, R.drawable.gallery_03, 
     R.drawable.gallery_04, R.drawable.gallery_05, 
     R.drawable.gallery_06, R.drawable.gallery_07, 
     R.drawable.gallery_08, R.drawable.gallery_10, 
     R.drawable.gallery_09 }; 

public GalleryListAdapter(Context c) { 
    this.mContext = c; 

} 

@Override 
public int getCount() { 
    return mImageIds.length; 

} 

@Override 
public Object getItem(int position) { 
    return position; 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ImageView imageView = new ImageView(mContext); 
    imageView.setImageResource(mImageIds[position]); 
    imageView.setLayoutParams(new GridView.LayoutParams(100, 100)); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setPadding(3, 3, 3, 3); 

    return imageView; 

} 
0

は、「HTTPを参照してください。拡張し、このコードを試すことができます://をdeveloper.android.com/reference/android/widget/ImageView.ScaleType.html "

0

はこれを試してみてください:

Bitmap bmp;  
ImageView img= new ImageView (this);  
bmp=BitmapFactory.decodeResource(getResources(), R.drawable.icon);  
img.setImageBitmap(bmp);    
img.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT,      
        LayoutParams.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL)); 
mLinearLayout.addView(img); 

あなたが設定したいものを重力に従ってFrameLayout.LayoutParams(幅、高さ、重力)に幅とImageViewの高さを設定する必要があることに注意してください。

関連する問題