前言
最近,右眼皮还在跳,我尝试了眼药水。哈哈有点小心慌。给你们个好建议
睡前,泡泡脚(自然边泡脚边看书啥的)。泡脚好处很多哦!我突然意识到,它能减轻压力。
安卓历程
①计划中的安卓学习
②迷彩灯 图片切换 跟随手指的圈
③图片放大及透明度 界面横竖向切换
案例,我喜欢联想。最后面我会分享今天的源代码。
图片放大及透明度
效果图
核心代码
MainActivity.java
package sedion.jeffli.action;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.view.Menu;
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;
public class MainActivity extends Activity {
int [] images = new int[]{
R.drawable.lijiang,
R.drawable.qiao,
R.drawable.shuangta,
R.drawable.shui,
R.drawable.xiangbi,
};
//定义默认显示图片
int currentImg = 2;
//定义图片初始化透明度
private int alpha = 255;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button plus = (Button) findViewById(R.id.button1);
final Button minus = (Button) findViewById(R.id.button2);
final Button next = (Button) findViewById(R.id.button3);
final ImageView image1 = (ImageView)findViewById(R.id.iamge1);
final ImageView image2 = (ImageView)findViewById(R.id.iamge2);
next.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(currentImg >= 4){
currentImg = -1;
}
BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();
//图片没回收,强制回收
if (!bitmapDrawable.getBitmap().isRecycled()) {
bitmapDrawable.getBitmap().recycle();
}
//改变显示图片
image1.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[++currentImg]));
}
});
OnClickListener clickListener = new OnClickListener() {
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
if (v == plus) {
setAlpha(getAlpha() + 20);
}
if(getAlpha() >= 255){
setAlpha(255);
}
if(getAlpha() <= 0){
setAlpha(0);
}
image1.setAlpha(getAlpha());
}
};
//保定道两个按钮
plus.setOnClickListener(clickListener);
minus.setOnClickListener(clickListener);
image1.setOnTouchListener(new OnTouchListener(){
@SuppressWarnings("deprecation")
@Override
public boolean onTouch(View v, MotionEvent event) {
BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();
//获取位图
Bitmap bitmap = bitmapDrawable.getBitmap();
//bitmap实际大小与第一个ImageView的缩放比例
double scale = bitmap.getWidth() / 320.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;
}
//图片显示指定区域
image2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));
image2.setAlpha(getAlpha());
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public int getAlpha() {
return alpha;
}
public void setAlpha(int alpha) {
this.alpha = alpha;
}
}
View Code
activity_main.xml
android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> android:id="@+id/iamge1" android:layout_width="fill_parent" android:background="#0000ff" android:layout_height="240px" android:src="@drawable/shuangta" android:scaleType="fitCenter" /> android:id="@+id/iamge2" android:layout_width="120dp" android:background="#0000ff" android:layout_height="120dp" android:layout_marginTop="10dp" />
View Code
联想
用于一些特殊科学图解。或者医学院那些解剖图,血管细胞啥啥的之类,可以学习必备哦(原谅本人在医科大)
界面横竖向切换
效果图
核心代码
MainActivity.java
package sedion.jeffli.action;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle);
final LinearLayout test = (LinearLayout)findViewById(R.id.test);
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(isChecked){
//垂直
test.setOrientation(1);
}else{
//水平
test.setOrientation(0);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
View Code
activity_main.xml
xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:id="@+id/toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="水平分布" android:textOn="垂直分布" android:checked="true" /> android:id="@+id/test" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="jeff"/> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="li"/> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="jeffli"/>
View Code
联想
这东西,以后用户喜欢哪种随意切换多么好。以后安卓用户体验可以考虑.
补言
数学美吧!
最近在看这本书,吴军大哥写的很好看。google我的目标!啦啦啦
感谢及资源共享
感谢读者!很喜欢你们给我的支持。如果支持,点个赞。
知识来源: http://www.oschina.net/android/books
上面案例资源分享:
链接:链接:http://pan.baidu.com/share/link?shareid=258699827&uk=3307409781 密码:e9pk
发表评论