Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义视图在xml布局中不居中_Android_Xml_Gravity_Custom View - Fatal编程技术网

Android 自定义视图在xml布局中不居中

Android 自定义视图在xml布局中不居中,android,xml,gravity,custom-view,Android,Xml,Gravity,Custom View,我有一个自定义视图,我必须把它放在一个线性布局中,并把布局放在重力=中心。 这是自定义视图: public class GIFView extends View{ private Movie movie; private InputStream is; private long moviestart; public GIFView(Context context) { super(context); is=context.getResou

我有一个自定义视图,我必须把它放在一个线性布局中,并把布局放在重力=中心。 这是自定义视图:

public class GIFView extends View{        
    private Movie movie;  
private InputStream is;  
private long moviestart;  

public GIFView(Context context) {  
    super(context);
    is=context.getResources().openRawResource(R.drawable.anim_cerca);
    movie=Movie.decodeStream(is);
}
public GIFView(Context context, AttributeSet attrs)
{
    super(context, attrs);
    is=context.getResources().openRawResource(R.drawable.anim_cerca);
    movie=Movie.decodeStream(is);
}

public GIFView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    is=context.getResources().openRawResource(R.drawable.anim_cerca);
    movie=Movie.decodeStream(is);
}

@Override  
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    long now=android.os.SystemClock.uptimeMillis();
    Paint p = new Paint();
    p.setAntiAlias(true);
    if (moviestart == 0) 
        moviestart = now;

    int relTime = (int)((now - moviestart) % movie.duration());
    movie.setTime(relTime);
    movie.draw(canvas,0,0);
    this.invalidate();
}                         
}    
这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" android:background="@drawable/sfondo">
<LinearLayout android:id="@+id/linearLayout2"
    android:layout_height="wrap_content" android:layout_width="match_parent"
    android:orientation="vertical">
    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_height="fill_parent" android:weightSum="1"
        android:layout_width="fill_parent" android:orientation="horizontal">
        <ImageView android:layout_height="wrap_content" android:id="@+id/imageView1"
            android:src="@drawable/trovachiavi" android:layout_width="wrap_content"
            android:layout_marginTop="10dp" android:layout_marginLeft="5dp"></ImageView>
        <ImageButton android:id="@+id/infoButton"
            android:background="@null" android:layout_height="47dp"
            android:layout_marginLeft="5dip" android:layout_weight="0.25"
            android:layout_marginTop="15dip" android:src="@drawable/info_mini"
            android:layout_width="47dp">
        </ImageButton>
    </LinearLayout>
</LinearLayout>
<ImageButton android:id="@+id/avvia_cerca"
    android:background="@null" android:layout_gravity="center|bottom"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:layout_marginTop="10dp"></ImageButton>
<LinearLayout android:id="@+id/layoutGIF"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:orientation="vertical">
    <spazio.digitale.com.GIFView android:id="@+id/gIFView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center"></spazio.digitale.com.GIFView>
</LinearLayout>
</LinearLayout>
如果我将自定义视图置于其他元素之上,并在设备上运行它,这些元素将不会显示。当xml在这里完成时,我将所有其他元素放在自定义视图之上,因此它们会显示出来,但自定义视图并没有在布局中居中。我能做什么?你可以用

<LinearLayout android:id="@+id/layoutGIF"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:orientation="vertical" android:weightSum="1">
    <spazio.digitale.com.GIFView android:id="@+id/gIFView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center"
android:layout_weight="0.8"></spazio.digitale.com.GIFView>
</LinearLayout>

但我建议您使用
动画
而不是gif

您可以使用

<LinearLayout android:id="@+id/layoutGIF"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:orientation="vertical" android:weightSum="1">
    <spazio.digitale.com.GIFView android:id="@+id/gIFView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center"
android:layout_weight="0.8"></spazio.digitale.com.GIFView>
</LinearLayout>

但我建议您使用
动画
代替gif