- 浏览: 126934 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
JavaEEdyc:
http://m.qianka.com/shoutu?u=21 ...
关于anroid设置webview背景方法探讨 -
JavaEEdyc:
http://m.qianka.com/shoutu?u=21 ...
android中的webview 加载html,并可以实现java调用js -
JavaEEdyc:
http://m.qianka.com/shoutu?u=21 ...
android ScrollView 与listView共存冲突问题解决方法(附图) -
zhangyang5023637:
讲的挺明白的。
android中的webview 加载html,并可以实现java调用js -
JavaEEdyc:
android中的webview 加载html,并可以实现ja ...
关于anroid设置webview背景方法探讨
package funo.com.test;
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class ChangePicture extends Activity {
private ImageView mImageView;
private Button btn1,btn2,btn3;
private LinearLayout layout1;
private Bitmap bmp;
private int id=0;
private int displayWidth,displayHeight;
private float scaleWidth=1,scaleHeight=1;
private int degree = 30;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.picture);
//取得屏幕分辨率
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayWidth=dm.widthPixels;
displayHeight=dm.heightPixels-80;
System.out.println(displayWidth +","+displayHeight);
bmp=BitmapFactory.decodeResource(this.getResources(),R.drawable.pic);
layout1=(LinearLayout)findViewById(R.id.layout1);
mImageView=(ImageView)findViewById(R.id.myImageView);
btn1=(Button)findViewById(R.id.myButton1);
btn1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
small();
}
});
btn2=(Button)findViewById(R.id.myButton2);
btn2.setOnClickListener(new OnClickListener(){
public void onClick(View v){
big();
}
});
btn3 = (Button)findViewById(R.id.myButton3);
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
circle();
}
});
}
private void small(){
//获得Bitmap的高和宽
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//设置缩小比例
double scale=0.8;
//计算出这次要缩小的比例
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
//产生resize后的Bitmap对象
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
if(id==0){
layout1.removeView(mImageView);
}
else{
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView=new ImageView(this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
btn2.setEnabled(true);
}
private void big(){
//获得Bitmap的高和宽
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//设置缩小比例
double scale=1.25;
//计算出这次要缩小的比例
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
//产生resize后的Bitmap对象
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
if(id==0){
layout1.removeView(mImageView);
}
else{
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView=new ImageView(this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*scaleHeight>displayHeight){
btn2.setEnabled(false);
}
}
//旋转
private void circle() {
//位图的旋转
//获得Bitmap的高和宽
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//产生resize后的Bitmap对象
Matrix matrix=new Matrix();
matrix.postRotate(degree);
degree += 30;
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
// int id = 0;
if(id==0){
layout1.removeView(mImageView);
}
else{
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView=new ImageView(this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
}
}
//xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/myButton1"
android:layout_width="90px"
android:layout_height="60px"
android:text="缩小"
android:textSize="18sp"
>
</Button>
<Button
android:id="@+id/myButton2"
android:layout_width="90px"
android:layout_height="60px"
android:text="放大"
android:textSize="18sp"
>
</Button>
<Button
android:id="@+id/myButton3"
android:layout_width="90px"
android:layout_height="60px"
android:text="旋转"
android:textSize="18sp"
/>
</LinearLayout>
<ImageView
android:id="@+id/myImageView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/pic"
android:layout_x="0px"
android:layout_y="0px"
>
</ImageView>
</LinearLayout>
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class ChangePicture extends Activity {
private ImageView mImageView;
private Button btn1,btn2,btn3;
private LinearLayout layout1;
private Bitmap bmp;
private int id=0;
private int displayWidth,displayHeight;
private float scaleWidth=1,scaleHeight=1;
private int degree = 30;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.picture);
//取得屏幕分辨率
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayWidth=dm.widthPixels;
displayHeight=dm.heightPixels-80;
System.out.println(displayWidth +","+displayHeight);
bmp=BitmapFactory.decodeResource(this.getResources(),R.drawable.pic);
layout1=(LinearLayout)findViewById(R.id.layout1);
mImageView=(ImageView)findViewById(R.id.myImageView);
btn1=(Button)findViewById(R.id.myButton1);
btn1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
small();
}
});
btn2=(Button)findViewById(R.id.myButton2);
btn2.setOnClickListener(new OnClickListener(){
public void onClick(View v){
big();
}
});
btn3 = (Button)findViewById(R.id.myButton3);
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
circle();
}
});
}
private void small(){
//获得Bitmap的高和宽
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//设置缩小比例
double scale=0.8;
//计算出这次要缩小的比例
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
//产生resize后的Bitmap对象
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
if(id==0){
layout1.removeView(mImageView);
}
else{
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView=new ImageView(this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
btn2.setEnabled(true);
}
private void big(){
//获得Bitmap的高和宽
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//设置缩小比例
double scale=1.25;
//计算出这次要缩小的比例
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
//产生resize后的Bitmap对象
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
if(id==0){
layout1.removeView(mImageView);
}
else{
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView=new ImageView(this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*scaleHeight>displayHeight){
btn2.setEnabled(false);
}
}
//旋转
private void circle() {
//位图的旋转
//获得Bitmap的高和宽
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//产生resize后的Bitmap对象
Matrix matrix=new Matrix();
matrix.postRotate(degree);
degree += 30;
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
// int id = 0;
if(id==0){
layout1.removeView(mImageView);
}
else{
layout1.removeView((ImageView)findViewById(id));
}
id++;
ImageView imageView=new ImageView(this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);
}
}
//xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/myButton1"
android:layout_width="90px"
android:layout_height="60px"
android:text="缩小"
android:textSize="18sp"
>
</Button>
<Button
android:id="@+id/myButton2"
android:layout_width="90px"
android:layout_height="60px"
android:text="放大"
android:textSize="18sp"
>
</Button>
<Button
android:id="@+id/myButton3"
android:layout_width="90px"
android:layout_height="60px"
android:text="旋转"
android:textSize="18sp"
/>
</LinearLayout>
<ImageView
android:id="@+id/myImageView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/pic"
android:layout_x="0px"
android:layout_y="0px"
>
</ImageView>
</LinearLayout>
发表评论
-
android微信摇一摇功能
2014-12-12 14:22 1642直接看代码 1:配置文件activity_main.xml & ... -
Android 返回键连续点击两次退出应用
2014-12-11 11:06 8776返回键连续点击两次退出应用,一般大家都是使用时间差来实现功能, ... -
android中getX(),getY() 与getRawX(),getRawY()分析
2014-12-09 12:13 3706[b]先看getX(),getY()源码解释 /** ... -
android ScrollView 与listView共存冲突问题解决方法(附图)
2013-05-12 16:18 8046[list] [*] [size=medium] 最近因 ... -
关于anroid设置webview背景方法探讨
2012-11-01 11:33 19788[b]最近的项目中一直关于webView设置背景色问题在研究, ... -
html5在android搭建滚动条
2012-04-26 23:33 3408最近的项目中出现类似IOS滚动条的效果。我们知道在html 中 ... -
css,img,url
2012-04-26 23:12 1965最近在做html5 android手机客户的开发,一个很简单的 ... -
HTML5和android等开发平台的使用及搭建环境
2012-04-23 00:05 1652对HTML5期待很久了,今天有时间也有机会接触一下了,和以前的 ... -
android webview WebViewClient
2012-04-17 23:33 3462最近两天一直在做一个网页连续测试的例子,循环统计各个页面的从向 ... -
Handler Only the original thread that created a view hierarchy can touch its vi
2012-03-16 18:48 2458错误例子:这里使用的Barprogress 在结束后就会报异常 ... -
android 面试题
2012-03-14 23:07 2204什么是Activity? 请描述一下Activ ... -
android webService
2012-03-14 22:43 1331找到几篇在android中使用webservice的文章,觉得 ... -
SharedPreferences
2012-03-09 12:42 2054今天做了对SharedPreferences做了简单的测试,并 ... -
JSONObject JSONARRAY
2012-03-04 00:38 35811.最近做的一个项目中传递的数据类型是Json格式的,所以在封 ... -
youmi移动广告平台
2012-03-02 21:57 1393前段时间,对智能手机投送广告做了一个简单测试。 其实,对于这些 ... -
android应用UI和用户体验
2012-03-02 20:37 799Android应用UI设计和用户体验的10个要点 随着移动 ... -
android listView
2011-12-03 16:18 778在android开发中ListView是比较常用的组件,它 ...
相关推荐
这份"android应用源码图片放大缩小旋转涂鸦源码.zip"提供了完整的源代码,可以作为学习和设计此类应用的参考。以下是基于这个源码包可能涉及到的关键知识点: 1. **图片加载库**:在Android中,高效地加载和显示...
这份"android应用源码图片放大缩小旋转涂鸦源码"是一个针对IT计算机专业学生的毕业设计项目,旨在帮助学生理解和实践Android App的开发流程。以下是基于这个主题的详细知识点解析: 1. **Android SDK与环境搭建**:...
android应用源码图片放大缩小旋转涂鸦源码.zip项目安卓应用源码下载android应用源码图片放大缩小旋转涂鸦源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术...
图片的放大和缩小可以通过手势操作实现,这涉及到手势识别和图像的缩放算法。在Android中,可以使用`GestureDetector`和`ScaleGestureDetector`类来检测用户的捏合和滑动手势。然后根据这些手势改变`ImageView`的`...
这份名为"应用源码图片放大缩小旋转涂鸦源码.zip"的压缩包文件,显然包含了一个Android应用程序的源代码,该程序提供了图像处理功能,包括图片的放大、缩小、旋转以及涂鸦。这个源码是专为那些希望深入学习Android和...
标题“通过手势对图片进行任意放大绽放旋转”指的是用户可以通过手势操作,如捏合、平移和旋转,来控制图片显示的效果,实现自由缩放、转动等功能。这一功能在许多应用中都非常实用,比如照片查看器、图像编辑器等。...
总结来说,Android中的图片放大缩小涉及到`ImageView`、`Matrix`、`Bitmap`尺寸计算、`ScaleGestureDetector`等多个组件和概念。通过理解和实践这些知识点,开发者可以构建出具有灵活缩放功能的图片查看应用。
这个"Android 图片平移、旋转、缩放demo源码"提供了实现这些功能的示例代码,可以帮助开发者理解和实现类似的交互效果。 首先,我们来探讨图片平移(Translation)的概念。在Android中,我们可以使用`...
"安卓Android源码——3D相册图片滑动+倾斜+放大+倒影处理源码.zip"提供的就是一个这样的解决方案,它允许开发者创建具有3D效果的相册,包括图片的滑动、倾斜、放大以及倒影显示等功能。接下来,我们将详细探讨这些...
在这个特定的项目中,`Gallery`被用来实现一个图片播放器,它具备双击放大缩小以及手势识别的功能,为用户提供更丰富的交互体验。 首先,`Gallery`控件是Android SDK中的一个ViewGroup,它允许用户通过水平滚动来...
在这个项目中,开发者将学习如何利用手势识别技术来实现对图片的自由放大、缩小、旋转和移动操作,这对于提升用户体验至关重要。下面我们将深入探讨这个项目涉及的关键知识点。 1. **手势识别**: - 在Android中,...
这个压缩包文件“Android应用源码之安卓图片旋转放大缩写透明度调整例子.zip”包含了一个Android应用的源代码示例,专注于图片处理操作,如旋转、放大、缩小以及调整透明度。通过分析其中的资源和文件,我们可以深入...
本文将深入探讨如何自定义一个ImageView,以实现在屏幕上通过手势滑动图片以及支持多点触摸进行图片的放大和缩小效果。这个自定义ImageView的实现,通常会涉及到Android的触摸事件处理、Matrix变换以及手势识别等...
在仿微信朋友圈图片查看器中,PhotoView是实现图片可放大缩小的关键组件。 3. **自定义Dialog**: 自定义Dialog允许开发者根据需求定制对话框的样式和功能。在这个案例中,可能包括了图片查看器的弹出动画、背景...
查看源码,研究其中的onDraw()方法和如何处理触摸事件,是学习和理解Android Canvas放大、缩小和平移的很好途径。 总的来说,Android的Canvas和Matrix类为开发者提供了强大的图形绘制能力,通过熟练掌握它们,你...