viewflippers뿐만 아니라 페이지 컬 애니메이션의 여러 예제를 접했습니다. 페이지 컬 애니메이션을 통해 뷰 프리퍼의 하위 항목을 탐색 할 수 있습니까? viewflippers에 적용한 애니메이션은 슬라이드 인/슬라이드 아웃과 같이 매우 기본적이었으며 동일한 작업을 수행 할 수 있는지 궁금해서/이미 페이지 컬 애니메이션을 사용하여 구현되었습니다.viewflipper의 뷰를 뒤집는 페이지 컬 애니메이션
답변
여기에 오픈 소스 안드로이드 프로젝트가 있습니다 : http://code.google.com/p/android-page-curl/. 다른 하나를 여기에서 찾았습니다 : https://github.com/harism/android_page_curl/.
그러나 네가 요구하는 경우 네이티브 구현이 없습니다.
@Warpzit에 답변 할 시간을내어 주셔서 감사하지만 view-flipper의 하위보기에 특별히 적용될 페이지 컬을 찾고 있습니다. – Rohan
@ 로한 선택의 여지가 있습니까? 가장 중요한 것은 무엇입니까? 그것을 완벽하게하기 위해서 = 너 자신을해라. 어떤 구석과 시간을 자르려면 = 다른 사람들이 만든 것을 사용하고 자신의 일을 순종한다. – Warpzit
감사합니다. 아마도 OpenGL을 자세하게 읽고 코드를 구현/실행해볼 것입니다. 나는 당신의 답변을 투표하려했으나 그렇게하기 위해서는 15 가지의 평판이 필요합니다. – Rohan
당신은 코드를 다음 그 사용 후 HERE
에서, 이것에 대한 하나의 모듈 라이브러리를 가져와야합니다 : -
item_page.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/image"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/text"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMediumInverse"
android:textColor="@android:color/black" />
</LinearLayout>
</ScrollView>
activity_flipper_view_controller.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:flip="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:paddingLeft="10dp"
android:text="@string/header"
android:textAppearance="@android:style/TextAppearance.Large" />
<com.aphidmobile.flip.FlipViewController
android:id="@+id/flip_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
flip:orientation="horizontal" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:paddingLeft="10dp"
android:text="@string/footer"
android:textAppearance="@android:style/TextAppearance.Large" />
</LinearLayout>
FlipperAdapter.java
package pratiksha.com.pagecurlviewdemo;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import pratiksha.com.pagecurlviewdemo.R;
/**
* Created by User(LPT-APR2015-02) on 11/7/2016.
*/
public class FlipperAdapter extends BaseAdapter {
private AppCompatActivity appCompatActivity;
private List<String> strings;
private int[] drawableIds = {R.mipmap.ic_launcher, R.mipmap.page1, R.mipmap.page2, R.mipmap.ic_launcher,
R.mipmap.page2, R.mipmap.page1, R.mipmap.page2, R.mipmap.ic_launcher,
R.mipmap.page1};
public FlipperAdapter(AppCompatActivity appCompatActivity, List<String> strings) {
super();
this.strings = strings;
this.appCompatActivity = appCompatActivity;
}
@Override
public int getCount() {
return strings.size();
}
@Override
public String getItem(int position) {
return strings.get(position);
}
@Override
public long getItemId(int position) {
return strings.indexOf(getItem(position));
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater = (LayoutInflater) appCompatActivity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
// If holder not exist then locate all view from UI file.
if (convertView == null) {
// inflate UI from XML file
convertView = inflater.inflate(R.layout.item_page, parent, false);
// get all UI view
holder = new ViewHolder(convertView);
// set tag for holder
convertView.setTag(holder);
} else {
// if holder created, get tag from view
holder = (ViewHolder) convertView.getTag();
}
holder.textView.setText(getItem(position));
holder.imageView.setImageResource(drawableIds[position]);
return convertView;
}
private static class ViewHolder {
private TextView textView;
private ImageView imageView;
public ViewHolder(View v) {
imageView = (ImageView)v.findViewById(R.id.image);
textView = (TextView) v.findViewById(R.id.text);
}
}
}
홈페이지 Activity.java
package pratiksha.com.pagecurlviewdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.aphidmobile.flip.FlipViewController;
import java.util.ArrayList;
public class FlipperViewController extends AppCompatActivity {
private FlipViewController flipViewController;
private FlipperAdapter adapter;
private ArrayList<String> stringArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flipper_view_controller);
flipViewController = (FlipViewController)findViewById(R.id.flip_view);
stringArrayList = new ArrayList<>();
readDataFromAssets();
//create and attach adapter to flipper view
adapter = new FlipperAdapter(this, stringArrayList);
flipViewController.setAdapter(adapter);
}
private void readDataFromAssets() {
for(int i=1;i<10;i++)
stringArrayList.add("Page Number "+i);
}
}
안녕하세요 그래서 당신이 발견되거나 답을 구현 있나요? –