这就是我们的交易。我正在用andEngine制作一个游戏,我使用CropResoltionpolicy (它的工作方式:http://android.kul.is/2013/10/andengine-tutorial-dealing-with-screen-sizes.html)。我有480x800的水平方向的发动机照相机。但是设备的分辨率是1920x1080。在我的游戏中,屏幕的顶部和底部都是溢出的设备屏幕(参见前面的链接,红色矩形是如何在屏幕的左边和右边溢出)。因此,当我添加直接从顶部开始的横幅(与主游戏活动布局的顶部对齐)时,它是部分隐藏的。通过使用'.setY()‘,我可以轻松地将横幅移动得稍微低一点,但在其他具有不同屏幕的设备上不能正常工作。所以我要找的是一种方法来设置横幅总是在设备屏幕的顶部或底部,而不是游戏视图/布局,因为它们不一样。
我用来显示广告的代码:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final DisplayMetrics displayMetrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
this.adView = new AdView(this);
this.adView.setAdSize(com.google.android.gms.ads.AdSize.SMART_BANNER);
this.adView.setAdUnitId("myAdId");
com.google.android.gms.ads.AdRequest adrequest = new com.google.android.gms.ads.AdRequest.Builder().addTestDevice(com.google.android.gms.ads.AdRequest.DEVICE_ID_EMULATOR).build();
this.adView.setY(displayMetrics.heightPixels - this.adView.getHeight()); // here I set position of my banner, but it does not work properly
this.adView.loadAd(adrequest);
RelativeLayout layout = (RelativeLayout)findViewById(R.id.relativeLayout);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layout.addView(this.mRenderSurfaceView);
layout.addView(this.adView, params);
}我的main_activity.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id ="@+id/relativeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
tools:context="com.hsdev.salesrep.MainActivity" >
</RelativeLayout>发布于 2015-03-30 11:26:34
如果你想得够多的话,答案就很简单了:
final DisplayMetrics displayMetrics = new DisplayMetrics();
this.adView.setY(displayMetrics.heightPixels - (this.adView.getHeight() * (displayMetrics.heightPixels / 480) ) - 50);其中480是andEngine中的相机高度,50是旗帜的高度。
https://stackoverflow.com/questions/29332639
复制相似问题