Zoom IN PRG
<?xml version="1.0" encoding="utf-8"?> import android.graphics.Matrix;
<RelativeLayout import android.os.Bundle;
xmlns:android="http://schemas.android.com/apk/res/an import
droid" androidx.appcompat.app.AppCompatActivity;
xmlns:tools="http://schemas.android.com/tools" import android.view.MotionEvent;
android:layout_width="match_parent" import android.view.ScaleGestureDetector;
android:layout_height="match_parent" import android.view.View;
tools:context=".MainActivity"> import android.widget.ImageView;
<ImageView public class MainActivity extends
android:id="@+id/imageView" AppCompatActivity {
android:layout_width="match_parent" private ImageView imageView;
android:layout_height="match_parent" private Matrix matrix = new Matrix();
android:scaleType="matrix" private float scale = 1f;
android:src="@drawable/your_image" /> private ScaleGestureDetector
scaleGestureDetector;
</RelativeLayout> @Override
protected void onCreate(Bundle
zoom_in.xml savedInstanceState) {
super.onCreate(savedInstanceState);
<vector setContentView(R.layout.activity_main);
xmlns:android="http://schemas.android.com/apk/res/an imageView =
droid" findViewById(R.id.imageView);
android:width="18dp" scaleGestureDetector = new
android:height="18dp" ScaleGestureDetector(this, new ScaleListener());
android:viewportWidth="24" imageView.setOnTouchListener(new
android:viewportHeight="24"> View.OnTouchListener() {
<path @Override
android:fillColor="#FF000000" public boolean onTouch(View v,
android:pathData="M13.5,9.5l2-2V7h0.5v1.5l2,2- MotionEvent event) {
2,2v1.5h-0.5l-2-2-2,2V14h-0.5V12.5l-2-2 2-2V7h0.5z"/>
</vector> scaleGestureDetector.onTouchEvent(event);
return true;}});}
private class ScaleListener extends
ScaleGestureDetector.SimpleOnScaleGestureLis
tener {
@Override
public boolean
onScale(ScaleGestureDetector detector) {
scale *= detector.getScaleFactor();
scale = Math.max(0.1f, Math.min(scale,
5.0f));
matrix.setScale(scale, scale);
imageView.setImageMatrix(matrix);
return true;}}}
Google Map
<?xml version="1.0" encoding="utf-8"?> import …
<RelativeLayout public class MainActivity extends
xmlns:android="http://schemas.android.com/ap AppCompatActivity implements
k/res/android" OnMapReadyCallback {
xmlns:tools="http://schemas.android.com/tools @Override
" protected void onCreate(Bundle
android:layout_width="match_parent" savedInstanceState) {
android:layout_height="match_parent" super.onCreate(savedInstanceState);
tools:context=".MainActivity"> setContentView(R.layout.activity_main);
<fragment SupportMapFragment mapFragment =
android:id="@+id/map" (SupportMapFragment)
getSupportFragmentManager()
android:name="com.google.android.gms.maps. .findFragmentById(R.id.map);
SupportMapFragment" mapFragment.getMapAsync(this);
android:layout_width="match_parent" }
android:layout_height="match_parent" />
@Override
</RelativeLayout> public void onMapReady(GoogleMap
googleMap) {
LatLng sydney = new LatLng(-34, 151);
googleMap.addMarker(new
MarkerOptions().position(sydney).title("Marker
in Sydney"));
googleMap.moveCamera(CameraUpdateFactor
y.newLatLng(sydney));
}
}
SMS
<?xml version="1.0" encoding="utf-8"?> @Override
<RelativeLayout public void onClick(View v) {
xmlns:android="http://schemas.android.com/apk/res/a sendMessage();}});
ndroid" IntentFilter intentFilter = new IntentFilter();
xmlns:tools="http://schemas.android.com/tools" intentFilter.addAction("android.provider.Telephony.SMS_REC
android:layout_width="match_parent" EIVED");
android:layout_height="match_parent" registerReceiver(smsReceiver, intentFilter);
tools:context=".MainActivity"> }
private void sendMessage() {
<EditText String phoneNumber =
android:id="@+id/editTextPhone" editTextPhone.getText().toString();
android:layout_width="match_parent" String message = editTextMessage.getText().toString();
android:layout_height="wrap_content"
android:hint="Enter phone number"/> SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNumber, null,
<EditText message, null, null);
android:id="@+id/editTextMessage" }
android:layout_width="match_parent" private final BroadcastReceiver smsReceiver = new
android:layout_height="wrap_content" BroadcastReceiver() {
android:layout_below="@id/editTextPhone" @Override
android:hint="Enter message"/> public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
<Button if (bundle != null) {
android:id="@+id/buttonSend" Object[] pdus = (Object[]) bundle.get("pdus");
android:layout_width="wrap_content" if (pdus != null) {
android:layout_height="wrap_content" for (Object pdu : pdus) {
android:layout_below="@id/editTextMessage" SmsMessage smsMessage =
android:text="Send"/> SmsMessage.createFromPdu((byte[]) pdu);
String sender =
<TextView smsMessage.getOriginatingAddress();
android:id="@+id/textView" String message =
android:layout_width="wrap_content" smsMessage.getMessageBody();
android:layout_height="wrap_content" textView.setText("SMS Received\nFrom: " +
android:layout_below="@id/buttonSend" sender + "\nMessage: " + message);
android:layout_marginTop="20dp"/> }
</RelativeLayout> }
}
Import… }
public class MainActivity extends AppCompatActivity { };
private static final int SMS_PERMISSION_CODE = 100;
private EditText editTextPhone, editTextMessage; @Override
private Button buttonSend; protected void onDestroy() {
private TextView textView; super.onDestroy();
@Override // Unregister receiver
protected void onCreate(Bundle savedInstanceState) { unregisterReceiver(smsReceiver);
super.onCreate(savedInstanceState); }
setContentView(R.layout.activity_main); }
editTextPhone = findViewById(R.id.editTextPhone);
editTextMessage =
findViewById(R.id.editTextMessage);
buttonSend = findViewById(R.id.buttonSend);
textView = findViewById(R.id.textView);
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.SEND_SMS) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.SEND_SMS},
SMS_PERMISSION_CODE);}
buttonSend.setOnClickListener(new
View.OnClickListener() {
List Sensor Types supported by Android System
Accelerometer
Gyroscope
Magnetometer (Compass)
Proximity Sensor.
Ambient Light Sensor
Define Geocoding and Reverse Geocoding
Geocoding:
Geocoding is the process of converting a human-readable address (like a street
address) into geographic coordinates (latitude and longitude). This process
allows you to identify the precise location of a place on the Earth's surface.
Reverse Geocoding:
Reverse Geocoding is the opposite process of geocoding. It involves converting
geographic coordinates (latitude and longitude) into a human-readable address
or location description. With reverse geocoding, you can determine the
approximate address or place name associated with a set of coordinates.