Android画廊效果
前言:Gallery是一个内部元素控件,可以水平滚动,并且可以把当前选择的子元素定位在它中心的布局组件;画廊Gallery一般用来显示可左右移动图片的列表(具体请看实例)。
效果:
开发环境:AndroidStudio2.2.1+gradle-2.14.1
涉及知识:
1.自定义控件
2.Gallery使用等
部分代码:
public class MainActivity extends AppCompatActivity {
//适配器
private FancyCoverFlowSampleAdapter adapter = null;
private FancyCoverFlow fancyCoverFlow;
private List<String> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initLayout();
initData();
}
private void initLayout() {
fancyCoverFlow = (FancyCoverFlow) findViewById(R.id.main_gallery);
fancyCoverFlow.dp2px();// child间距
adapter = new FancyCoverFlowSampleAdapter(this, list);
fancyCoverFlow.setAdapter(adapter);
//点击事件监听
fancyCoverFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "ItemClick-------->" + position, Toast.LENGTH_SHORT).show();
}
});
}
private void initData() {
for (int i = 0; i < 9; i++) {
list.add("" + i);
}
adapter.notifyDataSetChanged();
fancyCoverFlow.setSelection(1);//显示第几个
}
/**
* FancyCoverFlow属性使用
*
* // 未选中的透明度
* this.fancyCoverFlow.setUnselectedAlpha(0.0f);
* // 未选中的饱和度
* this.fancyCoverFlow.setUnselectedSaturation(0.0f);
* // 未选中的比例
* this.fancyCoverFlow.setUnselectedScale(0.8f);
* // child间距
* this.fancyCoverFlow.setSpacing(-60);
* // 旋转度数
* this.fancyCoverFlow.setMaxRotation(0);
* // 非选中的重心偏移,负的向上
* this.fancyCoverFlow.setScaleDownGravity(-1f);
* // 作用距离
* this.fancyCoverFlow.setActionDistance(FancyCoverFlow.ACTION_DISTANCE_AUTO);
*/
}