您的位置:首页 > 移动开发 > Android开发

Android imageView1.基础属性

2016-01-29 11:33 507 查看
1.未缩放的imageView

2.缩放的imageView

3.设置图片的透明度

4.在java代码中设定imageView控件的宽与高

5.在java代码中获取imageView的id

6.使用bitmap获取图片中的部分截屏

代码及注释如下:

activity_main.xml文件

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdge="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android_imageview001.MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next" />
<Button
android:id="@+id/addAlpha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="addAlpha" />
<Button
android:id="@+id/minusAlpha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="minusAlpha" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="未缩放的imageView" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/image001"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="缩放的imageView" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter"
android:src="@drawable/image001" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第三个imageView" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>

</ScrollView>


MainActivity.java文件

package com.example.android_imageview001;

import android.support.v7.app.ActionBarActivity;
import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

@SuppressLint("NewApi")
public class MainActivity extends ActionBarActivity {
private ImageView iv1;
private ImageView iv2;
private ImageView iv3;
private Button next;
private Button addAlpha;
private Button minusAlpha;
private int currentImage = 1;
private float alpha = 1.0f;
int[] images = new int[] { R.drawable.image001, R.drawable.image002,
R.drawable.image003, R.drawable.image004 };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.imageView1);
iv2 = (ImageView) findViewById(R.id.imageView2);
iv3 = (ImageView) findViewById(R.id.imageView3);

next = (Button) findViewById(R.id.next);
addAlpha = (Button) findViewById(R.id.addAlpha);
minusAlpha = (Button) findViewById(R.id.minusAlpha);
//在java代码中设定ImageView控件的宽和高
iv1.setLayoutParams(new LinearLayout.LayoutParams(200, 200));

next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//设置ImageView控件的id
iv2.setImageResource(images[++currentImage % images.length]);
}
});
OnClickListener onClickListener = new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == addAlpha){
alpha += 0.1f;
}
if(v == minusAlpha){
alpha -= 0.1f;
}
if(alpha >= 1.0f){
alpha = 1.0f;
}
if(alpha <= 0.0f){
alpha = 0.0f;
}
//设定ImageView控件的透明度。此处使用新的api,alpha的范围是0到1,float类型。
iv2.setAlpha(alpha);
}
};
iv2.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
BitmapDrawable bitmapDrawable = (BitmapDrawable) iv2.getDrawable();
//获取图片显示框中的位图。
Bitmap bitmap = bitmapDrawable.getBitmap();
//bitmap图片实际大小与iv2的缩放比例。
double scale = bitmap.getWidth() / 480.0;
// 获取需要显示的图片的开始点  。
int x = (int) (event.getX() * scale);
int y = (int) (event.getY() * scale);
if (x + 120 > bitmap.getWidth())
{
x = bitmap.getWidth() - 120;
}
if (y + 120 > bitmap.getHeight())
{
y = bitmap.getHeight() - 120;
}
//显示图片到指定的区域
iv3.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));
iv3.setAlpha(alpha);
return false;
}
});
addAlpha.setOnClickListener(onClickListener);
minusAlpha.setOnClickListener(onClickListener);
}

}


关于drawable的理解:http://blog.csdn.net/yuzhiyuxia/article/details/8806488 和 http://blog.csdn.net/lmj623565791/article/details/43752383
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: