Hỏi về ảnh động trong Android

Chào mọi người cho mình hỏi về ảnh động trong Android.
Mình dùng hàm random để hiển thị hình ảnh động GIF nhưng nó không hiển thị được hình ảnh động.

Hàm của bạn đâu. Định bắt mn bói lỗi cho bạn à

1 Like
<pl.droidsonroids.gif.GifImageView
        android:id="@+id/hoadao"
        android:layout_width="189dp"
        android:layout_height="87dp"
        android:background="@drawable/hoadao"
         />

public void show(int random){
        Drawable drawable = getResources().getDrawable(getResources()
                .getIdentifier("hoa"+random, "drawable", getPackageName()));
       ImgHoa.setImageDrawable(drawable);
         ImgHoa.setVisibility(View.VISIBLE);
    }

Khi nó hiển thị thì hình ảnh tỉnh thôi, mặc dù hình ảnh của mình là ảnh động .gif

bạn làm đúng như document mà thư viện yêu cầu chưa?

2 Likes

mình đã add thư viên vào rồi, mình cho nó hiển thị ở nền thì nó OK, chuyển sang nhấn Button để hiển thị thì không được

Bạn có đọc document cách sử dụng chưa vậy hay lại copy code từ 1 chỗ nào đấy chắp nối vào?
Search sơ thôi thì đã thấy để chạy được ảnh động thì cần phải truyền vào GifDrawable hoặc resource id chứ không phải Drawable.
Đoạn dưới là mình copy ra từ trang document của thư viện

From Java code
GifImageView , GifImageButton and GifTextView have also hooks for setters implemented. So animated GIFs can be set by calling setImageResource(int resId) and setBackgroundResource(int resId)
GifDrawable can be constructed directly from various sources:

//resource (drawable or raw)
GifDrawable gifFromResource = new GifDrawable( getResources(), R.drawable.anim );
2 Likes

thank bạn, mình đã hiểu. còn vấn đề này nửa muốn hỏi bạn

BtnPlay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                BtnPlay = (ImageView) findViewById(R.id.btnPlay);
                final MediaPlayer mP = MediaPlayer.create(Game.this,R.raw.ring);
                
                    mP.start();

Mình nhấn thì nó kêu âm thanh, nhưng sau vài lần thì nó không kêu nửa

Bạn không nên tạo đi tạo lại Media player mỗi lần click như thế. Ngoài ra nên release Media player sau khi sử dụng rồi mới play cái mới sẽ tránh được lỗi này. Lỗi này thường do bạn play nhiều mà không đóng tài nguyên lại

4 Likes

yeah, ví dụ trong android đoạn code này

BtnPlay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                BtnPlay = (ImageView) findViewById(R.id.btnPlay);
                final MediaPlayer mP = MediaPlayer.create(Game.this,R.raw.ring);
                
                    mP.start();

Ta có thể đưa nó vào 1 file txt hay file gì được không bạn, ý mình là đoạn code đó mình upload lên hosting sau đó truy xuất nó đó

Không hiểu bạn muốn làm gì luôn nên không tư vấn cho bạn được

2 Likes

Ý mình là ví dụ 1 hàm nào nó mình upload lên internet, sau đó mình dùng java android truy xuất hàm đó vào trong main_activity.java đó

Khương được đâu nhé. Bạn có thể làm API rồi lấy dữ liệu về thôi. Còn tải code về là ăn ban của google nhé

3 Likes

Thank bạn nha. bạn có thể cho mình xin ít tài liệu mà khi bạn học android dc khong.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?