ウェブサイトからのカバーフローにいくつかのコードを使用していますが、
http://www.inter-fuser.com/2010/01/android-coverflow-widget.html
このカバーフローはうまく機能し、問題はありません。ただし、xmlレイアウト内に配置しようとすると表示されず、coverflowの黒い背景の壁紙のみが表示されましたが、coverfowがありません。
xmlレイアウト内に配置したかったのは、ページの下部にボタンを配置する必要があるためです。そこで、画面下部のカバーフローの下にボタンを配置したxmlレイアウトを作成することにしました。
何が間違っているのか、または何が欠けているので、xmlレイアウト内でカバーフローが機能しませんか?
これが機能するために、コードに欠けているものがある可能性があります。これを機能させるために、次のことを行いました。コード作成者は、含まれているサンプルコードを使用してコンテンツビューを設定するだけでよいように見せます。レイアウトで単純なxmlファイルを作成すると、機能するはずです。
カバーフローがそれ自体でうまく機能し、レイアウト内に配置されたときに機能しない理由がわかりません。
このようなものが機能するために実行する必要があることのチェックリストはありますか?
カバーフローコードの作成者は、独自のcusom xmlビューを作成するときに使用できるサンプルとして、コメント化された2行を追加しました。
//Use this if you want to use XML layout file
//setContentView(R.layout.main);
//coverFlow = (CoverFlow) findViewById(R.id.coverflow);
これらの行のコメントを削除して、使用できるようにしました。
次に、次のコードをxmlレイアウトに追加しました
<com.vagina.destruction.CoverFlow
android:id="@+id/coverflow"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</com.vagina.destruction.CoverFlow>
これは、Eclipseのビジュアルレイアウトエディターから表示されるエラーメッセージです。
次のクラスをインスタンス化できませんでした。-com.vagina.destructon.CoverFlow(クラスを開く、エラーログを表示)-com.vagina.destruction.CoverFlowExample(クラスを開く、エラーログを表示)エラーログを参照(ウィンドウ>ビューを表示)詳細については。ヒント:Eclipseに表示されたときにコードをスキップするには、カスタムビューでView.isInEditMode()を使用します
これが、coverflowサンプルアクティビティの開始時のコードの一部です。
public class CoverFlowExample extends Activity implements OnItemClickListener {
/** Called when the activity is first created. */
int imageCount = 0;
Cursor cur;
String toastResult;
String pathName;
ArrayList<String> list1 = new ArrayList<String>();
private int blocker = 0;
private int imagePosition;
private int pathIndex;
private int indexer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CoverFlow coverFlow;
coverFlow = new CoverFlow(this);
Bundle extras = getIntent().getExtras();
if(extras !=null) {
imagePosition = extras.getInt("imagePosition");
}
String[] proj2 = {MediaStore.Images.Media.DATA};
Cursor cur2 = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj2, MediaStore.Images.Media.IS_PRIVATE + "='" + 1 +"'", null, null);
imageCount = cur2.getCount();
cur2.close();
coverFlow.setAdapter(new ImageAdapter(this));
ImageAdapter coverImageAdapter = new ImageAdapter(this);
coverFlow.setAdapter(coverImageAdapter);
coverFlow.setSpacing(-10);
coverFlow.setSelection(imageCount, true);
// setContentView(coverFlow);
coverFlow.setOnItemClickListener(this);
coverFlow.setSelection(imagePosition);
coverFlow = (CoverFlow) findViewById(R.id.coverflow);
//Use this if you want to use XML layout file
setContentView(R.layout.activity_coverflow);
coverFlow = (CoverFlow) findViewById(R.id.coverflow);
// centers the image on coverflow to the same image selected in the previous activity
coverFlow.setBackgroundResource(R.drawable.blanklarge);