2011-10-03 8 views
12

Come si imposta dinamicamente la gravità?Gravità dell'immagine vista Android

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

Ora vorrei mettere l'immagine in alto. Posso fare questo senza android:gravity in 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> 

ho un layout della struttura e aggiungo ad esso l'immagine, e quindi il testo e mi piace l'immagine di essere sulla parte superiore del schermo.

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

Ulteriori informazioni, per favore. Pubblica il tuo file di layout. –

+0

completato la modifica. – Teo

+0

C'è qualche ragione per cui non si limita a inserire ImageView nel file di layout? –

risposta

27

Usa ImageView.setScaleType() con ImageView.ScaleType.FIT_START come valore.

+0

im.setScaleType (im.FIT_START); ? non funziona – Teo

+0

Mi dispiace, è così: im.setScaleType (ImageView.ScaleType.FIT_START); –

+0

Grazie, funziona, ma perché mette il testo sull'immagine? Cosa posso fare ? – Teo

0

È possibile inserire ImageView in un LinearLayout e utilizzare setLayoutParams del LinearLayout per impostare la gravità del layout.

0

Si può provare questo codice se può si essere aiutare file 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 presentare

public class GalleryListAdapter estende 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

Vedere "http: // developer.android.com/reference/android/widget/ImageView.ScaleType.html".

0

Prova questo:

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); 

prega di notare che è necessario impostare la larghezza e l'altezza della ImageView in FrameLayout.LayoutParams (larghezza, altezza, peso) in base a ciò che la gravità che si desidera impostare.