盖屏部分

时间:2017-05-10 09:29:21

标签: android user-interface android-fragments android-activity

编辑:请不要第三方图书馆

我想达到以下效果,但我正在努力为不同屏幕尺寸的设备设计通用解决方案。

教程中使用的常见效果。此示例取自PlayStation Android应用程序(注意头像中的透明圆圈):

Effect image

你会怎么做?是否有可用的操作系统允许这样做?

感谢。

2 个答案:

答案 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();
        }
    });        
}
} 

另请查看thisthis

希望这能回答你的问题。

答案 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();