2015-08-01 16 views
7

Tôi muốn có hoạt ảnh hình ảnh giống như whatsapp hiện trên ảnh tiểu sử của bạn bè. Bất cứ ai có thể cho tôi biết làm thế nào để đạt được điều này?Whatsapp như hình ảnh tiểu sử hoạt hình

sửa

tôi trường hợp của tôi, các imagview ở phía trên và bên dưới nó, có listview. khi tôi cuộn xuống listview, số imageview sẽ tăng kích thước của nó và khi tôi cuộn lên, kích thước imageview sẽ giảm kích thước của nó. Chiều cao tối đa của imageview có thể là 500 và chiều cao tối thiểu là imageview có thể là 100. Tôi đã đạt được điều này. Những gì tôi đang làm là thay đổi chiều cao imagview. Nhưng nó không trơn tru lắm.

+0

tôi đã nhận nó và thêm vào câu trả lời của tôi xin vui lòng kiểm tra và cho tôi biết nếu bạn có bất kỳ vấn đề. –

Trả lời

2

bạn phải sử dụng Thư viện Thiết kế hỗ trợ Android và sử dụng mà bạn có thể đạt được

Đây là Link :: http://android-developers.blogspot.in/2015/05/android-design-support-library.html

trong đó bạn phải tìm sụp đổ Toolbars sử dụng điều khiển này bạn có thể đạt được điều này .

để biết thêm bạn có thể tham khảo Liên kết này :: https://github.com/chrisbanes/cheesesquare nó sẽ rất hữu ích cho bạn.

+0

Nhưng hình ảnh không được ẩn hoàn toàn. và hình ảnh phải có khả năng kéo xuống để tăng kích thước của nó – Bunny

+0

Hey. Tôi đang tìm kiếm cùng một .. Bạn đã tìm thấy một giải pháp? – spaceMonkey

+1

Đối với iOS, https://github.com/MaitrayeeGhosh/ParallaxScrollingAnimationEffectTutorial –

0

Thực hiện một phương pháp toàn cầu để hiển thị các hình ảnh trong chế độ toàn trong bạn YourApplication.java:

public static void showExpandableImage(Context context, String imageUri, String title, View view) { 
     try { 

      Intent intent = new Intent(context, ViewImageActivity.class); 
      intent.putExtra("image", imageUri); 
      intent.putExtra("title", title); 

      if (TextUtils.isEmpty(imageUri)) { 
       imageUri = getURLForResource(R.drawable.user_placeholder); // default image in drawable 
      } 

      Pair<View, String> bodyPair = Pair.create(view, imageUri); 
      ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(((Activity)context), bodyPair); 

      ActivityCompat.startActivity(context, intent, options.toBundle()); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 

public static String getURLForResource (int resourceId) { 
     return Uri.parse("android.resource://com.yourpackage.name/" + resourceId).toString(); 
    } 

Thêm mã này trong image_view_layout:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLay" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/black" 
    android:orientation="vertical"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitCenter" /> 

</LinearLayout> 

Thêm mã này trong ViewImageActivity:

public class ViewImageActivity extends AppCompatActivity { 
    private ImageView imageView; 
    private TextView title; 
    private String my_title, imgPath; 

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

     imageView = findViewById(R.id.imageView); 
     title = findViewById(R.id.title); 

     imgPath = getIntent().getExtras().getString("image"); 
     my_title = getIntent().getExtras().getString("title"); 

     if (!TextUtils.isEmpty(my_title)) { 
       title.setText(my_title); 
      } 

     if (!TextUtils.isEmpty(imgPath)) { 

      ViewCompat.setTransitionName(imageView, imgPath); 
      Picasso.with(this).load(imgPath) 
         .placeholder(R.drawable.user_placeholder) 
         .error(R.drawable.user_placeholder) 
         .into(imageView); 

     } else { 
       ViewCompat.setTransitionName(imageView, "NotAvailable"); 
       Picasso.with(this).load(R.drawable.user_placeholder) 
         .placeholder(R.drawable.user_placeholder) 
         .error(R.drawable.user_placeholder) 
         .into(imageView); 
      } 

    } 

} 

Chỉ cần gọi phương thức này ở nơi bạn muốn để hiển thị WhatsApp như hoạt hình:

Một thí dụ trong Hoạt động:

ImageView image_view = findViewById(R.id.pic_image_view); 
showExpandableImage(MyActivity.this, "UrlOfImage", "MyTitle", image_view); // replace with your content 

Một ví dụ trong Adaptor:

ImageView image_view = itemView.findViewById(R.id.pic_image_view); 
showExpandableImage(context, "UrlOfImage", "MyTitle", image_view); // replace with your content 

Chúc mừng mã hóa .. :)

Các vấn đề liên quan