List of usage examples for android.widget LinearLayout getBottom
@ViewDebug.CapturedViewProperty public final int getBottom()
From source file:shetye.prathamesh.notifyme.Utilities.java
public void showView(LinearLayout lview) { // get the center for the clipping circle int cx = (lview.getLeft() + lview.getRight()) / 2; int cy = (lview.getTop() + lview.getBottom()) / 2; // get the final radius for the clipping circle int finalRadius = Math.max(lview.getWidth(), lview.getHeight()); // create the animator for this view (the start radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(lview, cx, cy, 0, finalRadius); // make the view visible and start the animation lview.setVisibility(View.VISIBLE); anim.start();/* w w w. jav a2 s . com*/ }
From source file:shetye.prathamesh.notifyme.Utilities.java
public void hideView(final LinearLayout lview) { // get the center for the clipping circle int cx = (lview.getLeft() + lview.getRight()) / 2; int cy = (lview.getTop() + lview.getBottom()) / 2; // get the initial radius for the clipping circle int initialRadius = lview.getWidth(); // create the animation (the final radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(lview, cx, cy, initialRadius, 0); // make the view invisible when the animation is done anim.addListener(new AnimatorListenerAdapter() { @Override// w w w. ja v a2 s .c o m public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); lview.setVisibility(View.INVISIBLE); } }); anim.start(); }
From source file:com.example.mego.adas.directions.ui.DirectionsFragment.java
/** * method used to show the reveal effect to the edit text *//*w ww . j a v a 2s . c o m*/ private void revealEditText(LinearLayout view) { int centerX = view.getRight() - 30; int centerY = view.getBottom() - 60; int finalRadius = Math.max(view.getWidth(), view.getHeight()); //work with api 21 or above Animator animator = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { animator = ViewAnimationUtils.createCircularReveal(view, centerX, centerY, 0, finalRadius); } view.setVisibility(View.VISIBLE); isEditTextVisible = true; if (animator != null) { animator.start(); } }
From source file:com.example.mego.adas.directions.ui.DirectionsFragment.java
/** * method to hide edit text with animation *//*w ww. j av a 2 s . c om*/ private void hideEditText(final LinearLayout view) { int cx = view.getRight() - 30; int cy = view.getBottom() - 60; int initialRadius = view.getWidth(); Animator anim = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, initialRadius, 0); } if (anim != null) { anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); view.setVisibility(View.INVISIBLE); } }); } isEditTextVisible = false; if (anim != null) { anim.start(); } }
From source file:com.numix.calculator.EventListener.java
private void deleteAnimation(View view) { final TextView colorLayout = (TextView) view.getRootView().findViewById(R.id.deleteColor); final LinearLayout displayView = (LinearLayout) view.getRootView().findViewById(R.id.displayLayout); final CalculatorDisplay calculatorDisplay = (CalculatorDisplay) view.getRootView() .findViewById(R.id.display); int finalRadius = Math.max(displayView.getWidth(), displayView.getHeight()); // create the animator for this view (the start radius is zero) Animator colorAnim;/*from ww w .j a va 2 s. c o m*/ colorAnim = ViewAnimationUtils.createCircularReveal(colorLayout, (int) displayView.getRight(), (int) displayView.getBottom(), 0, finalRadius); final AlphaAnimation fadeAnim = new AlphaAnimation(1.0f, 0.0f); final AlphaAnimation fadeDisplay = new AlphaAnimation(1.0f, 0.0f); fadeAnim.setDuration(250); fadeAnim.setInterpolator(new AccelerateInterpolator()); fadeAnim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { colorLayout.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); fadeDisplay.setDuration(250); fadeDisplay.setInterpolator(new AccelerateInterpolator()); fadeDisplay.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mHandler.onClear(); displayView.setAlpha(1.0f); } @Override public void onAnimationRepeat(Animation animation) { } }); colorAnim.setInterpolator(new AccelerateInterpolator()); colorAnim.addListener(new android.animation.Animator.AnimatorListener() { @Override public void onAnimationStart(android.animation.Animator animation) { calculatorDisplay.startAnimation(fadeDisplay); } @Override public void onAnimationRepeat(android.animation.Animator animation) { } @Override public void onAnimationEnd(android.animation.Animator animation) { colorLayout.startAnimation(fadeAnim); } @Override public void onAnimationCancel(android.animation.Animator animation) { } }); colorLayout.setVisibility(View.VISIBLE); colorAnim.start(); }
From source file:fiskinfoo.no.sintef.fiskinfoo.MapFragment.java
private void createSearchDialog() { final Dialog dialog = dialogInterface.getDialog(getActivity(), R.layout.dialog_search_tools, R.string.search_tools_title); final ScrollView scrollView = (ScrollView) dialog.findViewById(R.id.search_tools_dialog_scroll_view); final AutoCompleteTextView inputField = (AutoCompleteTextView) dialog .findViewById(R.id.search_tools_input_field); final LinearLayout rowsContainer = (LinearLayout) dialog.findViewById(R.id.search_tools_row_container); final Button viewInMapButton = (Button) dialog.findViewById(R.id.search_tools_view_in_map_button); final Button jumpToBottomButton = (Button) dialog.findViewById(R.id.search_tools_jump_to_bottom_button); Button dismissButton = (Button) dialog.findViewById(R.id.search_tools_dismiss_button); List<PropertyDescription> subscribables; PropertyDescription newestSubscribable = null; final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault()); Date cachedUpdateDateTime;/* w w w .ja v a 2s . co m*/ Date newestUpdateDateTime; SubscriptionEntry cachedEntry; Response response; final JSONArray toolsArray; ArrayAdapter<String> adapter; String format = "JSON"; String downloadPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) .toString() + "/FiskInfo/Offline/"; final JSONObject tools; final List<String> vesselNames; final Map<String, List<Integer>> toolIdMap = new HashMap<>(); byte[] data = new byte[0]; cachedEntry = user.getSubscriptionCacheEntry(getString(R.string.fishing_facility_api_name)); if (fiskInfoUtility.isNetworkAvailable(getActivity())) { subscribables = barentswatchApi.getApi().getSubscribable(); for (PropertyDescription subscribable : subscribables) { if (subscribable.ApiName.equals(getString(R.string.fishing_facility_api_name))) { newestSubscribable = subscribable; break; } } } else if (cachedEntry == null) { Dialog infoDialog = dialogInterface.getAlertDialog(getActivity(), R.string.tools_search_no_data_title, R.string.tools_search_no_data, -1); infoDialog.show(); return; } if (cachedEntry != null) { try { cachedUpdateDateTime = simpleDateFormat .parse(cachedEntry.mLastUpdated.equals(getActivity().getString(R.string.abbreviation_na)) ? "2000-00-00T00:00:00" : cachedEntry.mLastUpdated); newestUpdateDateTime = simpleDateFormat .parse(newestSubscribable != null ? newestSubscribable.LastUpdated : "2000-00-00T00:00:00"); if (cachedUpdateDateTime.getTime() - newestUpdateDateTime.getTime() < 0) { response = barentswatchApi.getApi().geoDataDownload(newestSubscribable.ApiName, format); try { data = FiskInfoUtility.toByteArray(response.getBody().in()); } catch (IOException e) { e.printStackTrace(); } if (new FiskInfoUtility().writeMapLayerToExternalStorage(getActivity(), data, newestSubscribable.Name.replace(",", "").replace(" ", "_"), format, downloadPath, false)) { SubscriptionEntry entry = new SubscriptionEntry(newestSubscribable, true); entry.mLastUpdated = newestSubscribable.LastUpdated; user.setSubscriptionCacheEntry(newestSubscribable.ApiName, entry); user.writeToSharedPref(getActivity()); } } else { String directoryFilePath = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString() + "/FiskInfo/Offline/"; File file = new File(directoryFilePath + newestSubscribable.Name + ".JSON"); StringBuilder jsonString = new StringBuilder(); BufferedReader bufferReader = null; try { bufferReader = new BufferedReader(new FileReader(file)); String line; while ((line = bufferReader.readLine()) != null) { jsonString.append(line); jsonString.append('\n'); } } catch (IOException e) { e.printStackTrace(); } finally { if (bufferReader != null) { try { bufferReader.close(); } catch (Exception e) { e.printStackTrace(); } } } data = jsonString.toString().getBytes(); } } catch (ParseException e) { e.printStackTrace(); Log.e(TAG, "Invalid datetime provided"); } } else { response = barentswatchApi.getApi().geoDataDownload(newestSubscribable.ApiName, format); try { data = FiskInfoUtility.toByteArray(response.getBody().in()); } catch (IOException e) { e.printStackTrace(); } if (new FiskInfoUtility().writeMapLayerToExternalStorage(getActivity(), data, newestSubscribable.Name.replace(",", "").replace(" ", "_"), format, downloadPath, false)) { SubscriptionEntry entry = new SubscriptionEntry(newestSubscribable, true); entry.mLastUpdated = newestSubscribable.LastUpdated; user.setSubscriptionCacheEntry(newestSubscribable.ApiName, entry); } } try { tools = new JSONObject(new String(data)); toolsArray = tools.getJSONArray("features"); vesselNames = new ArrayList<>(); adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_dropdown_item_1line, vesselNames); for (int i = 0; i < toolsArray.length(); i++) { JSONObject feature = toolsArray.getJSONObject(i); String vesselName = (feature.getJSONObject("properties").getString("vesselname") != null && !feature.getJSONObject("properties").getString("vesselname").equals("null")) ? feature.getJSONObject("properties").getString("vesselname") : getString(R.string.vessel_name_unknown); List<Integer> toolsIdList = toolIdMap.get(vesselName) != null ? toolIdMap.get(vesselName) : new ArrayList<Integer>(); if (vesselName != null && !vesselNames.contains(vesselName)) { vesselNames.add(vesselName); } toolsIdList.add(i); toolIdMap.put(vesselName, toolsIdList); } inputField.setAdapter(adapter); } catch (JSONException e) { dialogInterface.getAlertDialog(getActivity(), R.string.search_tools_init_error, R.string.search_tools_init_info, -1).show(); Log.e(TAG, "JSON parse error"); e.printStackTrace(); return; } if (searchToolsButton.getTag() != null) { inputField.requestFocus(); inputField.setText(searchToolsButton.getTag().toString()); inputField.selectAll(); } inputField.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String selectedVesselName = ((TextView) view).getText().toString(); List<Integer> selectedTools = toolIdMap.get(selectedVesselName); Gson gson = new Gson(); String toolSetDateString; Date toolSetDate; rowsContainer.removeAllViews(); for (int toolId : selectedTools) { JSONObject feature; Feature toolFeature; try { feature = toolsArray.getJSONObject(toolId); if (feature.getJSONObject("geometry").getString("type").equals("LineString")) { toolFeature = gson.fromJson(feature.toString(), LineFeature.class); } else { toolFeature = gson.fromJson(feature.toString(), PointFeature.class); } toolSetDateString = toolFeature.properties.setupdatetime != null ? toolFeature.properties.setupdatetime : "2038-00-00T00:00:00"; toolSetDate = simpleDateFormat.parse(toolSetDateString); } catch (JSONException | ParseException e) { dialogInterface.getAlertDialog(getActivity(), R.string.search_tools_init_error, R.string.search_tools_init_info, -1).show(); e.printStackTrace(); return; } ToolSearchResultRow row = rowsInterface.getToolSearchResultRow(getActivity(), R.drawable.ikon_kystfiske, toolFeature); long toolTime = System.currentTimeMillis() - toolSetDate.getTime(); long highlightCutoff = ((long) getResources().getInteger(R.integer.milliseconds_in_a_day)) * ((long) getResources().getInteger(R.integer.days_to_highlight_active_tool)); if (toolTime > highlightCutoff) { int colorId = ContextCompat.getColor(getActivity(), R.color.error_red); row.setDateTextViewTextColor(colorId); } rowsContainer.addView(row.getView()); } viewInMapButton.setEnabled(true); inputField.setTag(selectedVesselName); searchToolsButton.setTag(selectedVesselName); jumpToBottomButton.setVisibility(View.VISIBLE); jumpToBottomButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Handler().post(new Runnable() { @Override public void run() { scrollView.scrollTo(0, rowsContainer.getBottom()); } }); } }); } }); viewInMapButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String vesselName = inputField.getTag().toString(); highlightToolsInMap(vesselName); dialog.dismiss(); } }); dismissButton.setOnClickListener(onClickListenerInterface.getDismissDialogListener(dialog)); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); dialog.show(); }