我想與大家分享關於這件事與社區我的經驗...
的想法是在上肢上顯示一個傾斜的「LITE」橡膠我的應用程序的主屏幕的ner。
Rod Algonquin的回答很好。但是,它並沒有完全解決我的問題,因爲我不得不將圖片的尺寸調整到屏幕高度...以及屏幕方向。惡夢。即使使用相對佈局,也幾乎不可能,因爲圖像的隱藏部分從未正確對齊過。
所以我不得不以不同的方式工作:圖片必須左移和上移20%。怎麼做 ?
1)在layout.xml文件:
- 插入ImageView的一個RelativeLayout的內部
- 給相對佈局的ID
配置的ImageView以使其適合其容器的RelativeLayout的寬度和高度(layout_width = 「WRAP_CONTENT」 和layout_height = 「WRAP_CONTENT」)
<RelativeLayout
android:id="@+id/accueil_litebannerlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/accueil_litebanner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/lite_banner" />
</RelativeLayout>
2)在您的activity.java類文件:
//get screen dimensions
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int ScreenWidth = size.x;
int ScreenHeight = size.y;
//set the desired height of the rubber, based on screen's height
int myLayoutWidthAndHeight=ScreenHeight/4;
//get rubber PNG image dimensions
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds=true;
BitmapFactory.decodeResource(getResources(),
R.drawable.lite_banner,options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
//redux_factor has to be calculated, because if the image is reduced, then the translation has to be adapted
double redux_factor=1;
if (myLayoutWidthAndHeight<imageWidth) {
redux_factor=(double)myLayoutWidthAndHeight/imageWidth;
}
//determine by how many pixels left and top (same) the image will have to be translated
double translation_percents=.22;
double myCroppedMargin_double=imageWidth*translation_percents*redux_factor;
int myCroppedMargin=(int) Math.round(myCroppedMargin_double);
//get the image layout
RelativeLayout litebannerlayout=(RelativeLayout) this.findViewById(R.id.accueil_litebannerlayout);
//change its parameters (width, height, leftMargin, topMargin)
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(myLayoutWidthAndHeight,myLayoutWidthAndHeight);
params.setMargins(-myCroppedMargin, -myCroppedMargin, 0,0);
litebannerlayout.setLayoutParams(params);
Arghhh。它的工作原理...
您可以使用此示例代碼將圖像視圖移出屏幕,基於百分比或像素數。此代碼也可以用於將橡膠/橫幅放在右上角,左下角,右下角。
OK,讓我們繼續到別的東西......
爲什麼不將它添加到佈局之前削減的形象呢? –
@Rod_Algonquin:因爲我與iPad應用程序共享這些圖像。這在XCode上很容易實現。我寧願以編程方式,但如果我沒有得到答案,那就是我必須做的。 – philippe
我之前使用過負邊距來達到類似的效果。看到這個職位:http://stackoverflow.com/questions/10673503/is-it-a-bad-practice-to-use-negative-margins-in-android – Chris