If you think the Android project wally listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright (C) 2014 Freddie (Musenkishi) Lust-Hed
*/*www.java2s.com*/
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/package com.musenkishi.wally.fragments;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.DisplayMetrics;
import android.view.Display;
import com.musenkishi.wally.R;
import com.musenkishi.wally.models.Size;
import com.wrapp.floatlabelededittext.FloatLabeledEditText;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* DialogFragment that provides the user with a prefilled, editable resolution input.
*
* Created by Musenkishi on 2014-03-11 19:25.
*/publicclass CustomResolutionDialogFragment extends MaterialDialogFragment implements Handler.Callback {
publicstaticfinal String TAG = "CustomResolutionDialogFragment";
privatestaticfinalint SET_PREFILLED_RESOLUTION = 13502;
private Handler uiHandler;
private FloatLabeledEditText editTextWidth;
private FloatLabeledEditText editTextHeight;
public CustomResolutionDialogFragment(){
}
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
uiHandler = new Handler(Looper.getMainLooper(), this);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
if (getActivity() != null) {
setContentView(R.layout.dialog_content_custom_resolution);
setCancelable(false);
final Dialog dialog = super.onCreateDialog(savedInstanceState);
editTextWidth = (FloatLabeledEditText) dialog.findViewById(R.id.custom_res_width);
editTextHeight = (FloatLabeledEditText) dialog.findViewById(R.id.custom_res_height);
uiHandler.sendEmptyMessage(SET_PREFILLED_RESOLUTION);
return dialog;
} else {
return null;
}
}
@Override
publicboolean handleMessage(Message message) {
switch (message.what) {
case SET_PREFILLED_RESOLUTION:
if (getActivity() != null) {
Size size = getRealScreenDimensions();
editTextHeight.setText(Integer.toString(size.getHeight()));
editTextWidth.setText(Integer.toString(size.getWidth()));
}
break;
}
return false;
}
private Size getRealScreenDimensions(){
if (getActivity() != null) {
final DisplayMetrics metrics = new DisplayMetrics();
Display display = getActivity().getWindowManager().getDefaultDisplay();
Method mGetRawH = null;
Method mGetRawW = null;
int realWidth = 0;
int realHeight = 0;
// For JellyBeans and onward
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN){
display.getRealMetrics(metrics);
realWidth = metrics.widthPixels;
realHeight = metrics.heightPixels;
}else{
try {
mGetRawH = Display.class.getMethod("getRawHeight");
mGetRawW = Display.class.getMethod("getRawWidth");
try {
realWidth = (Integer) mGetRawW.invoke(display);
realHeight = (Integer) mGetRawH.invoke(display);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
returnnew Size(realWidth, realHeight);
} else {
return null;
}
}
public Size getSize(){
int width;
int height;
try {
width = Integer.parseInt(editTextWidth.getTextString());
} catch (NumberFormatException e) {
width = 0;
}
try {
height = Integer.parseInt(editTextHeight.getTextString());
} catch (NumberFormatException e) {
height = 0;
}
returnnew Size(width, height);
}
}