I have used this code as @gnobal posted on https://stackoverflow.com/a/2700683/1556329 and it works great. But my issue is that I have found that when I apply Theme.Transparent the activity does not goes to landscape mode when I rotate the mobile phone.
Theme:
<style name="Theme.Transparent" parent="android:Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
Layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layoutImagen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:windowContentOverlay="@null"
android:windowNoTitle="true"
tools:context=".ImagenExamen_activity" >
<!-- android:background="#CC000000" -->
<!-- android:backgroundDimEnabled="true" -->
<ImageView
android:id="@+id/imageViewImagen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</LinearLayout>
Activity:
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import com.meapp.Utilities;
public class Imagen_activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imagen_examen);
Bundle b = getIntent().getExtras();
String imagen = b.getString("imagen_name");
int id = getResources().getIdentifier(imagen, "drawable", getPackageName());
ImageView imageView = (ImageView) findViewById(R.id.imageViewImagen);
// Determinacion tamaño fuente
BitmapFactory.Options bitmapOpt = new BitmapFactory.Options();
bitmapOpt.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), id, bitmapOpt);
int[] screen_dim = Utilites.verDimensionesPantalla(this);
// más eficiente si se usa una potencia de 2
imageView.setImageBitmap(Utilities
.decodeSampledBitmapFromResource(getResources(), id,
screen_dim[0], screen_dim[1], true));
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cerrarImagen();
}
});
}
public void cerrarImagen() {
((Activity) this).finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.imagen_examen_, menu);
return true;
}
}
Why can't it be rotating? I have tried to change windowIsFloating to false, and change other parameters without luck.
If you set
android:windowIsTranslucent
orandroid:windowIsFloating
to true rotation notifications are disabled (as long as you don't force them to be enabled withandroid:screenOrientation="sensor"
).I had the same problem. Before doing any solutions, first be sure that rotation feature is enabled and then check your home screen that can be rotate, if no, Reboot your phone and the problem will be solved!
I have theme with
android:windowIsTransluent
and rotation stops. To turn it ON i have experiment by addingscreenOrientation="sensor"
for application, theme and first Activity. Adding rotation only for first Activity turn rotation on for all activities in application.you may check out this
add one of them to your manifest
<activity............../>
. and don't forget to add this to your application in manifest as well if you wish to avoid recreating your activityandroid:configChanges="keyboardHidden|orientation|screenSize"