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);
*/
}