不加任何旋转屏幕的处理代码的时候,旋转屏幕将会导致系统把当前activity关闭,重新打开。
如果只是简单的界面调整,我们可以阻止此问题的发生,屏幕旋转而自己调整屏幕的元素重构。

首先我们需要修改AndroidManifest.xml文件:
<activity android:name=".Magazine">
</activity>

//修改为:

<activity android:name=".Magazine"
  android:configChanges="orientation|keyboard">
</activity>


这样是让程序能够响应旋转屏幕的事件。
然后重写onConfigurationChanged方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
  // TODO Auto-generated method stub
  super.onConfigurationChanged(newConfig);
  Log.v(" == onConfigurationChanged");
  processLayout();
}


这个就可以自己决定是否重写处理布局了。
Tags:
1.  什么是density

引用
1) density
density表示每英寸有多少个显示点(逻辑值),它的单位是dpi:dot per inch,通常屏幕大时,density就大,屏幕小时,density就小,通常
屏幕实际分辨率为240px*400px时,density=120
屏幕实际分辨率为320px*533px,density=160
屏幕实际分辨率为480px*800px,density=240

2)  分辨率
是整个屏是多少点,比如800x480,它是软件的显示单位

3) 从Android1.6版本开始支持density(对应API Level 4)
用于解决应用在屏幕大小不同的硬件上正常显示的问题
Tags:
by 毕淑敏

"衰老很重要的标志,就是求稳怕变。所以,你想保持年轻吗?你希望自己有活力吗?你期待着清晨能在新生活的憧憬中醒来吗?有一个好办法——每天都冒一点险。"

以上这段话,见于一本国外的心理学小册子。像给某种青春大力丸做广告。本待一笑了之,但结尾的那句话吸引了我——每天都冒一点险。

"险"有灾难狠毒之意。如果把它比成一种处境一种状态,你说是现代人碰到它的时候多呢,还是古代甚至原始时代碰到的多呢?粗粗一想,好像是古代多吧。茹毛饮血刀耕火种时,危机四伏。细一想,不一定。那时的险多属自然灾害,虽然凶残,但比较单纯。现代了,天然险这种东西,也跟热带雨林似的,快速稀少,人工险增多,险种也丰富多了。
普通方法弹出alert后,取消标题还会有小部分高度,这个倒会好些:

先定义一个样式 res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="FullHeightDialog"
    parent="android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
  </style>
</resources>


弹出alert时稍微修改一下:

Dialog dialog = new Dialog(this, R.style.FullHeightDialog);
dialog.setContentView(R.layout.article_comment);
dialog.show();


你可以弹出一个窗体,也和alert类似的效果。
首先修改一下窗体的属性:

修改AndroidManifest.xml 文件:

<activity android:name=".Test"
  android:theme="@android:style/Theme.Dialog">
</activity>


这是声明样式,下面是打开activity后,oncreate时加点参数:

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
  WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

  this.setContentView(R.layout.article_comment);
}


这样会出现背景模糊的效果。
Tags:
程序如何把自身进行一次截图?或者对某个view对象截图?

ImageView iv = (ImageView) findViewById(R.id.ImageView01);
ImageView iv2 = (ImageView) findViewById(R.id.ImageView02);
ImageView iv3 = (ImageView) findViewById(R.id.ImageView03);

//draw的方式对整屏截取,但信息栏为黑色
View cv = getWindow().getDecorView();  
Bitmap b = Bitmap.createBitmap(200, 200, Bitmap.Config.RGB_565);  
cv.draw(new Canvas(b));
iv.setImageBitmap(b);

//对隐藏的未画过的对象,截出的是黑色
Bitmap image = Bitmap.createBitmap(200, 200, Bitmap.Config.RGB_565);
bt3.draw(new Canvas(image));
iv2.setImageBitmap(image);

//get drawable cache , bitmap to drawable
bt4.setDrawingCacheEnabled(true);
Bitmap bitmap = bt4.getDrawingCache();
Drawable drawable = (Drawable) new BitmapDrawable(bitmap);
iv3.setBackgroundDrawable(drawable);


点击在新窗口中浏览此图片

由左至右,分别是 bt4 iv iv2 iv3
iv是屏幕截图,上半部分是黑色,下面是bt4的图
iv2填充的是未显示过的一个按钮,截取不到,呈黑色
iv3是复制bt4,跟bt4一样
上述代码包含了bitmap转换为drawable的方式

推荐阅读:

1 How-to convert a View to a Bitmap Image in our Android Application
2 Android之代码实现的截图方式
3 Android Bitmap和Canvas
4 android 保存图片 合成图片
5 Android图片总结 图片缩放和添加文字
6 Drawable、Bitmap、byte[]之间的转换
Tags:
分页: 1/3 第一页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐