2011-08-30 55 views
6

Tôi có một số ImageView trong Android. Tôi muốn di chuyển hình ảnh một phần bên trong màn hình sao cho chỉ một phần của hình ảnh hiển thị. Nếu tôi đặt lề hoặc đệm trong xml thì hình ảnh co lại. Tôi đã sử dụng bản dịch Animation theo phương thức onCreate. Nhưng tôi thấy hình ảnh di chuyển lần đầu tiên xem được trình bày. Tôi muốn hình ảnh hiển thị một phần mà không có sự thay đổi được hiển thị. Có cách nào để làm điều này không?di chuyển một phần hình ảnh ra khỏi màn hình trong android

+0

Nếu có thể bạn có thể đăng mã xem hình ảnh của mình? – EpicOfChaos

+0

bạn có chiều cao và chiều rộng được đặt là bao nhiêu? Nếu bạn đặt chúng cho một số giá trị lớn hơn kích thước màn hình của bạn, bạn sẽ có thể sử dụng lề hoặc đệm để di chuyển nó ở bất cứ nơi nào bạn muốn. Bố cục của bạn sẽ phải lớn hơn kích thước màn hình. – FoamyGuy

+0

Không có mã xem hình ảnh. Tôi đang đưa hình ảnh vào tệp xml. – user866821

Trả lời

2

Làm thế nào về điều này.

Trong onCreate của hoạt động của bạn:

ImageView yourImage = (ImageView)findViewById(R.id.your_image_control_id); 
yourImage.setX(1000); 
yourImage.setY(1000); 

Bằng cách đó, nó được bố trí đúng lúc khởi động. Hoặc bạn có thể sử dụng AbsoluteLayout và đặt tọa độ x và y của hình ảnh theo cách đó. Đảm bảo bạn không sử dụng fill_parent cho chiều cao hoặc chiều rộng.

+3

API của tôi là 2.1 trở lên. SetX đến từ API 11. Không được sử dụng bố cục tuyệt đối. – user866821

4

trong giao diện cha mẹ (như LinearView) thiết ClipChildrens=false, nếu những gì bạn đang tìm kiếm

kiểm tra mã này, nó làm việc cho tôi ...

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:layout_marginRight="-20dp" 
     android:src="@drawable/ic_launcher" /> 

</FrameLayout> 
+0

cảm ơn bạn đã trả lời. Nó không hoạt động – user866821

+0

Nó cũng không làm việc cho tôi. :( – Hesam

+0

@Hesam Tôi đã chỉnh sửa câu trả lời –

2

Tôi thấy rằng nếu bạn sử dụng tiêu cực lề, sau đó bạn không thể alignParent ở phía đối diện, vì vậy, giả sử bạn đang cố gắng để có một nửa hình ảnh ở bên phải của khung nhìn, bạn không thể chỉ định android: layout_alignParentLeft. Ngoài ra, nếu bạn cần hình ảnh đầy đủ và không muốn nó được cắt bớt, như trong trường hợp bạn muốn tạo hiệu ứng trên toàn màn hình onClick, bạn phải đặt bố cục mẹ android: clipChildren = "false". Xml sau def làm việc cho tôi:

<ImageView 
     android:id="@+id/you_feature_image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="@dimen/feature_margin_right" 
     android:contentDescription="feature_image" 
     android:gravity="center_vertical" 
     android:padding="@dimen/zero" 
     android:paddingBottom="@dimen/zero" 
     android:paddingLeft="@dimen/zero" 
     android:paddingRight="@dimen/zero" 
     android:paddingTop="@dimen/zero" 
     android:src="@drawable/feature_phone_02_2x" /> 

Tôi gửi bài này ngay bây giờ bởi vì tôi chỉ đốt một vài giờ cố gắng để con số này ra bản thân mình, và nghĩ có thể nó sẽ giúp người khác trong thời gian tới họ nên đến qua câu hỏi này như tôi đã làm.

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