首页 > 解决方案 > 如何使 GifImageView 居中

问题描述

我已经创建了一个LinearLayout内部 a ScrollView,其中有几个GifImageView穿过屏幕horizontal,但它们不是centered。显示GifImageView在屏幕左侧而不是中心。

已尝试

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/colorPrimary"
android:layout_gravity="center">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="horizontal">

        <ImageView
            android:layout_gravity="center"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/gold_coin"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center">

        <!--<ImageView-->
            <!--android:id="@+id/d9"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
        android:layout_gravity="center"
        android:id="@+id/d9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d8"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d7"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d6"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d5"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d4"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d3"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d2"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d1"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!--<ImageView-->
            <!--android:id="@+id/d0"-->
            <!--android:layout_gravity="center"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <pl.droidsonroids.gif.GifImageView
            android:layout_gravity="center"
            android:id="@+id/d0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <!--<pl.droidsonroids.gif.GifImageView-->
    <!--android:layout_gravity="center"-->
    <!--android:id="@+id/GifImageView1"-->
    <!--android:layout_width="wrap_content"-->
    <!--android:layout_height="wrap_content" />-->

    <ImageView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/png_new"/>

    <Button
        android:id="@+id/btnAutoCrush"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/auto_crush_button" />

    <Button
        android:id="@+id/btnEmotionVictory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/emotion_button" />

    <Button
        android:id="@+id/btnSolve"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/solve_button" />

    <!--<pl.droidsonroids.gif.GifImageView-->
        <!--android:layout_gravity="center"-->
        <!--android:id="@+id/GifImageView"-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content" />-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/power_emotion"/>


    <Button
        android:id="@+id/btnFlow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/flow_button" />

    <Button
        android:id="@+id/btnMediate"
        android:layout_width="305dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="2dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/mediate_button" />

    <Button
        android:id="@+id/btnExercise"
        android:layout_width="275dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="2dp"
        android:layout_marginTop="2dp"
        android:background="@drawable/exercise_button" />

</LinearLayout>


</ScrollView>

GifImageView

package com.example.warrenedy.julyfinal;

import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Context;
import android.content.Intent;

import pl.droidsonroids.gif.GifImageView;

public class TestScreen2 extends Activity implements View.OnClickListener{

Button btnAutoEmotionCrush, btnEmotionVictory, btnSolve, btnFlow, btnMediate, btnExercise;
int counter = 0;
TextView text;
ImageView dr0;
ImageView dr1;
ImageView dr2;
ImageView dr3;
ImageView dr4;
ImageView dr5;
ImageView dr6;
ImageView dr7;
ImageView dr8;
ImageView dr9;

SharedPreferences sharedpreferences;

public static final String MyPREFERENCES = "MyPrefs";
public static final String Count = "Count";

int cnt = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test_screen2);

    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

    if ( sharedpreferences.contains(Count)) {
        cnt = sharedpreferences.getInt(Count, 0);
    }

    dr0=(GifImageView) findViewById(R.id.d0);
    dr1=(GifImageView) findViewById(R.id.d1);
    dr2=(GifImageView) findViewById(R.id.d2);
    dr3=(GifImageView) findViewById(R.id.d3);
    dr4=(GifImageView) findViewById(R.id.d4);
    dr5=(GifImageView) findViewById(R.id.d5);
    dr6=(GifImageView) findViewById(R.id.d6);
    dr7=(GifImageView) findViewById(R.id.d7);
    dr8=(GifImageView) findViewById(R.id.d8);
    dr9=(GifImageView) findViewById(R.id.d9);

    btnAutoEmotionCrush = (Button) findViewById(R.id.btnAutoCrush);
    btnEmotionVictory = (Button) findViewById(R.id.btnEmotionVictory);
    btnSolve = (Button) findViewById(R.id.btnSolve);
    btnFlow = (Button) findViewById(R.id.btnFlow);
    btnMediate = (Button) findViewById(R.id.btnMediate);
    btnExercise = (Button) findViewById(R.id.btnExercise);

    btnAutoEmotionCrush.setOnClickListener(this);
    btnEmotionVictory.setOnClickListener(this);
    btnSolve.setOnClickListener(this);
    btnFlow.setOnClickListener(this);
    btnMediate.setOnClickListener(this);
    btnExercise.setOnClickListener(this);

    convertToImg(cnt);

}

@Override
public void onClick(View v) {

    if ( v == btnAutoEmotionCrush ) {
        Intent i = new Intent(this, com.example.warrenedy.julyfinal.ui.AllEmotionsActivity.class);
        startActivity(i);
    }
    if ( v == btnEmotionVictory ) {
        Intent i = new Intent(this, Screen141_Emotion_Selection.class);
        startActivity(i);
    }
    else if ( v == btnSolve ) {
        Intent i = new Intent(this, Screen0_Problem_Solver.class);
        startActivity(i);
    }
    else if ( v == btnFlow ) {
        Intent i = new Intent(this, Screen5_Flows_Of_Life.class);
        startActivity(i);
    }
    else if ( v == btnMediate ) {

    }
    else if ( v == btnExercise ) {

    }
}

public void convertToImg(Integer cnt)
{
    int a = cnt;

    int num=0;
    int digit=0;
    while (a>=1)
    {


        num=a%10;

        a=a/10;

        switch(num)
        {
            case 0:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==1)
                    dr1.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_0_500_clr_624);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_0_500_clr_624);

                break;
            case 1:


                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==1)
                    dr1.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_1_500_clr_625);
                break;
            case 2:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_2_500_clr_654);
                break;

            case 3:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_3_500_clr_648);
                break;
            case 4:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==1)
                    dr1.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_4_500_clr_650);
                break;

            case 5:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_5_500_clr_643);
                break;

            case 6:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_6_500_clr_630);
                break;
            case 7:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_7_500_clr_615);
                break;
            case 8:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_8_500_clr_647);
                break;
            case 9:

                if(digit==0)
                    dr0.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==1)

                    dr1.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==2)
                    dr2.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==3)
                    dr3.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==4)
                    dr4.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==5)
                    dr5.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==6)
                    dr6.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==7)
                    dr7.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==8)
                    dr8.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                if(digit==9)
                    dr9.setImageResource(R.drawable.gold_streak_9_500_clr_617);
                break;

            default:
                Toast.makeText(this,"error", Toast.LENGTH_SHORT).show();

        }

        digit++;
    }
}

public void onResume(){
    if (sharedpreferences.contains(Count)) {
        cnt = sharedpreferences.getInt(Count, 0);
    }
    super.onResume();
}
}

标签: androidandroid-layout

解决方案


将 LinearLayout(滚动视图内部)宽度设置为 match_parent,例如 - android:layout_width="match_parent"

原因:-如果宽度为“wrap_content”,“wrap_content”不显示 layout_gravity="center" 属性的效果

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/colorPrimary"
    android:layout_gravity="center">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">



    </LinearLayout>
 </ScrollView>

推荐阅读