技术标签: layout button Android开发 android matrix float encoding
package zhang.matrix;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class maxtrix extends Activity {
private ImageView mImageView;
private Button mButton1;
private Button mButton2;
private RelativeLayout layout1;
private Bitmap bmp;
private int id=0;
private int displayWidth;
private int displayHeight;
private float scaleWidth=1;
private float scaleHeight=1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//取得屏幕分辨率大小
DisplayMetrics dm= new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayWidth=dm.widthPixels;
displayHeight=dm.heightPixels-80;
bmp=BitmapFactory.decodeResource(getResources(), R.drawable.q2);
mImageView=(ImageView)findViewById(R.id.imageView1);
layout1= (RelativeLayout)findViewById(R.id.layout1);
mButton1= (Button)findViewById(R.id.button1);
mButton2=(Button)findViewById(R.id.button2);
mButton1.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
small();
}
});
mButton2.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
big();
}
});
}
public void small(){
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
double scale =0.8;
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);
if(id==0){//第一次就删除原来的Imageview
layout1.removeView(mImageView);
}else{//不是第一次删除上一次产生的ImageView
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView = new ImageView(maxtrix.this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
//图片最大的时候。放大按钮disable,缩小的时候设为enable
mButton2.setEnabled(true);
}
public void big(){
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
double scale =1.25;
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);
if(id==0){//第一次就删除原来的Imageview
layout1.removeView(mImageView);
}else{//不是第一次删除上一次产生的ImageView
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView = new ImageView(maxtrix.this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
//如果在放大图片就超出屏幕,就把Button disable
if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*bmpHeight>displayHeight)
mButton2.setEnabled(false);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ImageView android:layout_height="wrap_content" android:id="@+id/imageView1" android:layout_width="wrap_content" ></ImageView>
<Button android:layout_alignParentBottom="true" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:id="@+id/button1"></Button>
<Button android:layout_toRightOf="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:id="@+id/button2" android:layout_alignTop="@+id/button1" android:layout_alignBottom="@+id/button1"></Button>
</RelativeLayout>
Linux进程通信之信号量信号量(semaphore)是变量,是一种特殊的变量。它紧取正值。对信息号量的操作只有2中:等待(wait)和发送信号(signal).信号量比较难理解。下面我们一个个的看一下各个函数。与信号量处理的函数有:semget();semctl();semop();第一个semget()函数,与共享内存的shmget()函数类似。使用格式:#includeint semget...
问 题ABCDE目的:在点击td任何地方的时候,checkbox都设置成被选中或取消的状态但是在点击td选中或者取消checkbox时,如果点击checkbox操作的时候会和td选中 取消冲突,造成checkbox不能选,js如下:$(".table").on("click", "tr td", function(){var checkbox = $(this).find("input[type...
1.php环境搭建2.php变量使用3.php变量测试和变量转换4.php常用运算符5.php流程控制6.php流程控制与函数7.php函数8.php数组函数第一部分9.php数组函数第二部分10.php数组函数第三部分11.php字符串函数第一部分12.php字符串函数第二部分13.php正则表达式14.数学、日期和错误处理15.php日期函数16.php图片处理第一部分17.php图片处理第二...
反向传播(BPN)算法是神经网络中研究最多、使用最多的算法之一,它用于将输出层中的误差传播到隐藏层的神经元,然后用于更新权重。学习 BPN 算法可以分成以下两个过程:正向传播:输入被馈送到网络,信号从输入层通过隐藏层传播到输出层。在输出层,计算误差和损失函数。反向传播:在反向传播中,首先计算输出层神经元损失函数的梯度,然后计算隐藏层神经元损失函数的梯度。接下来用梯度更新权重。这两个过程重复迭代直到收敛。使用MNIST数据集具体实现过程# 反向传播(BPN)算法# 导入模块import ten
谈「韦诺之战」 谈「韦诺之战」 | 半卷 谈「韦诺之战」 沈觅仁 狂想集 2011-10-16 玩韦诺之战也有好长时间了。一直十分热爱战棋类游戏,例如英雄无敌,例如火焰纹章,沉迷于培养英雄们,同时和他们一同冒险。玩韦诺之战的直接原因是,它是L...
http://www.cnblogs.com/younes/archive/2010/04/26/1721528.htmlPlacement new、operator new、new operator 完全释疑首先我们区分下几个容易混淆的关键词: new(也称作new operator)、operator new、placement new。看如下代码:
1、依赖:<!--mybatis逆向工程--><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3....
我在CSDN上得更新很慢,因为我看得书少,学得东西少,还有就是自己很懒啊.说起来很惭愧.自己还是不是搞IT得,学得不好啊,上学期又开了C++这门课,其实我觉得c++还是太复杂了.
转自:https://learnku.com/composer/t/1002/deep-composer-autoload这几天看到 phphub 上面有人开始进坑怒看 laravel 源代码,于是我也凑个热闹来看下这个故事。众所周知 composer 是现代 PHP 项目的基石, 与古老的 pear 不同, composer 并不是一款专注于系统级别 php 管理的包管理系统,而是基于项...
宁德时代上位机,支持 适合北汽ec200,eu260,北斗星 x5e,威马EX5 等车型,东风T735 凯普特新款EV350 江铃凯悦
废话没有,直接贴代码。<?php/** * 使用PHP检测能否ping通IP或域名 * @param type $address * @return boolean */function pingAddress($address) { // Windows 服务器下 $pingresult = exec("ping -n 1 {$address}", $outco
【Untiy】完美解决Untiy Package Manager无限加载的问题