воспроизведение gif-изображения в относительном макете

#android #android-relativelayout #gif

#Android #android-относительное описание #gif — файл

Вопрос:

я не понимаю, как воспроизвести gif-изображение в моем макете. мой макет использует RelativeLayout, а изображение находится в центре. я искал способ воспроизведения gif, но пример не говорит мне, как реализовать его в моем макете, который содержит другой виджет не только для воспроизведения одного gif. пожалуйста, помогите мне сделать это.

вот этот код:

choosepet_layout.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background"
android:paddingTop="50px"
android:paddingBottom="10px"
>

<TextView 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/choose"
android:layout_gravity="center"
android:layout_marginBottom="10px"
/>

<Spinner
android:id="@ id/pet"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/pettype"
/>
<ImageView 
android:id="@ id/petpic"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cat"
/>

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingRight="10px"
android:paddingLeft="10px">

<RadioGroup
android:orientation="horizontal"
android:id="@ id/genderGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>   
<TextView
android:text="Gender"
android:id="@ id/textGender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_marginBottom="13px"
android:textColor="#000000"
/>

<RadioButton
android:id="@ id/maleRadio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Male"
android:layout_toRightOf="@ id/textGender"
/>

<RadioButton 
android:id="@ id/femaleRadio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Female"
android:layout_toRightOf="@ id/maleRadio"
/>
</RadioGroup>>

<TextView 
android:text="Name"
android:id="@ id/textName"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_marginBottom="11px"
android:layout_above="@ id/genderGroup"
android:textColor="#000000"
android:layout_marginRight="12px"
/>

<EditText
android:id="@ id/name"
android:layout_width="150sp"
android:layout_height="40sp"
android:layout_toRightOf="@ id/textName"
android:layout_above="@ id/genderGroup"
/>

<ImageButton
android:id="@ id/process"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/letsplay"
android:background="@null"
android:layout_toRightOf="@ id/genderGroup"
android:layout_alignParentBottom="true"
android:layout_marginBottom="38px"
/>

</RelativeLayout>
</LinearLayout>
 

и это тот самый choosepet.java

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

    Spinner spinnerPet = (Spinner) findViewById(R.id.pet);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.pet_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spinnerPet.setAdapter(adapter);
    EditText nameField = (EditText) findViewById(R.id.name);
    nameField.requestFocus();
    ImageButton processButton = (ImageButton) findViewById(R.id.process);
     processButton.setOnClickListener(new View.OnClickListener() {
             public void onClick(View view) {
                 Intent myIntent = new Intent(view.getContext(), petMain.class);
                 startActivityForResult(myIntent, 0);
             }
     });
     final ImageView imgPet = (ImageView) findViewById(R.id.petpic);
     spinnerPet.setOnItemSelectedListener(new OnItemSelectedListener() {
         public void onItemSelected(AdapterView<?>parent, 
               View view, int pos, long id){
             String petType = parent.getItemAtPosition(pos).toString();
             if(petType.equals("Anjing")){
                 imgPet.setImageResource(R.drawable.dog);
             }else{
                 imgPet.setImageResource(R.drawable.cat);
             }
         }
        @Override
        public void onNothingSelected(AdapterView parent) {
            // TODO Auto-generated method stub  
        }
     });
}
 

заранее благодарю вас!

Ответ №1:

насколько я знаю android не поддерживает GIFанимацию вы должны создавать анимацию другими способами например сериями изображений

как в примере, приведенном ниже

http://yekmer.posterous.com/how-to-make-a-loading-animator-in-android

Ответ №2:

Android может декодировать формат gif.

взгляните на этот пост.