我想达到以下效果,但我正在努力为不同屏幕尺寸的设备设计通用解决方案。
教程中使用的常见效果。此示例取自PlayStation Android应用程序(注意头像中的透明圆圈):
你会怎么做?是否有可用的操作系统允许这样做?
感谢。
答案 0 :(得分:0)
例如。您需要为此创建自己的自定义叠加层视图。
public class MainActivity extends Activity {
private ImageView mOverLayImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Dialog overlayInfo = new Dialog(MainActivity.this);
overlayInfo.requestWindowFeature(Window.FEATURE_NO_TITLE);
overlayInfo.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
overlayInfo.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
overlayInfo.setContentView(R.layout.overlay_view);
overlayInfo.show();
mOverLayImage = (ImageView) overlayInfo.findViewById(R.id.over_lay_image);
mOverLayImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
overlayInfo.cancel();
}
});
}
}
希望这能回答你的问题。
答案 1 :(得分:0)
您可以检查窗口大小,并根据您可以通过编程方式设置宽度和高度。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
你也可以在片段中获得大小:
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();